| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 | 
							- <?php
 
- /**
 
-  * Multi-image uploader action
 
-  *
 
-  * @author Cash Costello
 
-  * @license http://www.gnu.org/licenses/gpl-2.0.html GNU General Public License v2
 
-  */
 
- elgg_load_library('tidypics:upload');
 
- $img_river_view = elgg_get_plugin_setting('img_river_view', 'tidypics');
 
- $guid = (int) get_input('guid');
 
- $album = get_entity($guid);
 
- if (!$album) {
 
- 	register_error(elgg_echo('tidypics:baduploadform'));
 
- 	forward(REFERER);
 
- }
 
- // post limit exceeded
 
- if (count($_FILES) == 0) {
 
- 	trigger_error('Tidypics warning: user exceeded post limit on image upload', E_USER_WARNING);
 
- 	register_error(elgg_echo('tidypics:exceedpostlimit'));
 
- 	forward(REFERER);
 
- }
 
- // test to make sure at least 1 image was selected by user
 
- $num_images = 0;
 
- foreach($_FILES['images']['name'] as $name) {
 
- 	if (!empty($name)) {
 
- 		$num_images++;
 
- 	}
 
- }
 
- if ($num_images == 0) {
 
- 	// have user try again
 
- 	register_error(elgg_echo('tidypics:noimages'));
 
- 	forward(REFERER);
 
- }
 
- // create the image object for each upload
 
- $uploaded_images = array();
 
- $not_uploaded = array();
 
- $error_msgs = array();
 
- foreach ($_FILES['images']['name'] as $index => $value) {
 
- 	$data = array();
 
- 	foreach ($_FILES['images'] as $key => $values) {
 
- 		$data[$key] = $values[$index];
 
- 	}
 
- 	if (empty($data['name'])) {
 
- 		continue;
 
- 	}
 
- 	$name = htmlspecialchars($data['name'], ENT_QUOTES, 'UTF-8', false);
 
- 	$mime = tp_upload_get_mimetype($name);
 
- 	$image = new TidypicsImage();
 
- 	$image->title = $name;
 
- 	$image->container_guid = $album->getGUID();
 
- 	$image->setMimeType($mime);
 
- 	$image->access_id = $album->access_id;
 
- 	try {
 
- 		$result = $image->save($data);
 
- 	} catch (Exception $e) {
 
- 	        $image->delete();
 
- 	        $result = false;
 
- 		array_push($not_uploaded, $name);
 
- 		array_push($error_msgs, $e->getMessage());
 
- 	}
 
- 	if ($result) {
 
- 		array_push($uploaded_images, $image->getGUID());
 
- 		if ($img_river_view == "all") {
 
- 			elgg_create_river_item(array('view' => 'river/object/image/create',
 
-                                                      'action_type' => 'create',
 
-                                                      'subject_guid' => $image->getOwnerGUID(),
 
-                                                      'object_guid' => $image->getGUID()));
 
-                 }
 
-         }
 
- }
 
- if (count($uploaded_images)) {
 
- 	// Create a new batch object to contain these photos
 
- 	$batch = new TidypicsBatch();
 
- 	$batch->access_id = $album->access_id;
 
- 	$batch->container_guid = $album->getGUID();
 
- 	if ($batch->save()) {
 
- 		foreach ($uploaded_images as $uploaded_guid) {
 
- 			add_entity_relationship($uploaded_guid, "belongs_to_batch", $batch->getGUID());
 
- 		}
 
- 	}
 
- 	$album->prependImageList($uploaded_images);
 
- 	// "added images to album" river
 
- 	if ($img_river_view == "batch" && $album->new_album == false) {
 
- 		elgg_create_river_item(array('view' => 'river/object/tidypics_batch/create',
 
-                                              'action_type' => 'create',
 
-                                              'subject_guid' => $batch->getOwnerGUID(),
 
-                                              'object_guid' => $batch->getGUID()));
 
- 	} else if ($img_river_view == "1" && $album->new_album == false) {
 
-                 elgg_create_river_item(array('view' => 'river/object/tidypics_batch/create_single_image',
 
-                                              'action_type' => 'create',
 
-                                              'subject_guid' => $batch->getOwnerGUID(),
 
-                                              'object_guid' => $batch->getGUID()));
 
- 	}
 
- 	// "created album" river
 
- 	if ($album->new_album) {
 
- 		$album->new_album = false;
 
- 		$album->first_upload = true;
 
- 		$album_river_view = elgg_get_plugin_setting('album_river_view', 'tidypics');
 
- 		if ($album_river_view != "none") {
 
-                         elgg_create_river_item(array('view' => 'river/object/album/create',
 
-                                                      'action_type' => 'create',
 
-                                                      'subject_guid' => $album->getOwnerGUID(),
 
-                                                      'object_guid' => $album->getGUID()));
 
-                 }
 
- 		// "created album" notifications
 
- 		// we throw the notification manually here so users are not told about the new album until
 
- 		// there are at least a few photos in it
 
- 		if ($album->shouldNotify()) {
 
-                         elgg_trigger_event('album_first', 'album', $album);
 
- 			$album->last_notified = time();
 
- 		}
 
- 	} else {
 
- 		// "added image to album" notifications
 
- 		if ($album->first_upload) {
 
- 			$album->first_upload = false;
 
- 		}
 
- 		if ($album->shouldNotify()) {
 
-                         elgg_trigger_event('album_more', 'album', $album);
 
- 			$album->last_notified = time();
 
- 		}
 
- 	}
 
- }
 
- if (count($not_uploaded) > 0) {
 
- 	if (count($uploaded_images) > 0) {
 
- 		$error = sprintf(elgg_echo("tidypics:partialuploadfailure"), count($not_uploaded), count($not_uploaded) + count($uploaded_images))  . '<br />';
 
- 	} else {
 
- 		$error = elgg_echo("tidypics:completeuploadfailure") . '<br />';
 
- 	}
 
- 	$num_failures = count($not_uploaded);
 
- 	for ($i = 0; $i < $num_failures; $i++) {
 
- 		$error .= "{$not_uploaded[$i]}: {$error_msgs[$i]} <br />";
 
- 	}
 
- 	register_error($error);
 
- 	if (count($uploaded_images) == 0) {
 
- 		//upload failed, so forward to previous page
 
- 		forward(REFERER);
 
- 	} else {
 
- 		// some images did upload so we fall through
 
- 	}
 
- } else {
 
- 	system_message(elgg_echo('tidypics:upl_success'));
 
- }
 
- forward("photos/edit/$batch->guid");
 
 
  |