From 92ec25ec441330323e4fcbdfa33ebcf900420097 Mon Sep 17 00:00:00 2001 From: Cash Costello Date: Sun, 31 Oct 2010 12:47:25 +0000 Subject: integrated Jeff's batch code into trunk --- actions/ajax_upload_complete.php | 23 ++++++++++ actions/upload.php | 22 +++++++--- languages/en.php | 3 +- views/default/river/object/image/create.php | 2 +- .../default/river/object/tidypics_batch/create.php | 51 ++++++++++++++++++++++ views/default/tidypics/forms/ajax_upload.php | 3 +- views/default/tidypics/forms/settings.php | 6 +-- 7 files changed, 97 insertions(+), 13 deletions(-) create mode 100644 views/default/river/object/tidypics_batch/create.php diff --git a/actions/ajax_upload_complete.php b/actions/ajax_upload_complete.php index 0912854a3..b66b563e3 100644 --- a/actions/ajax_upload_complete.php +++ b/actions/ajax_upload_complete.php @@ -21,6 +21,29 @@ if ($album->new_album == TP_NEW_ALBUM) { add_to_river('river/object/album/create', 'create', $album->owner_guid, $album->guid); } +$params = array( + 'type' => 'object', + 'subtype' => 'image', + 'metadata_names' => 'batch', + 'metadata_values' => get_input('batch'), +); +$images = elgg_get_entities_from_metadata($params); +if ($images) { + // Create a new batch object to contain these photos + $batch = new ElggObject(); + $batch->subtype = "tidypics_batch"; + $batch->access_id = ACCESS_PUBLIC; + $batch->container_guid = $album->guid; + if ($batch->save()) { + foreach ($images as $image) { + add_entity_relationship($image->guid, "belongs_to_batch", $batch->getGUID()); + } + if (get_plugin_setting('img_river_view', 'tidypics') == "batch") { + add_to_river('river/object/tidypics_batch/create', 'create', $batch->getObjectOwnerGUID(), $batch->getGUID()); + } + } +} + // plugins can register to be told when a Tidypics album has had images added trigger_elgg_event('upload', 'tp_album', $album); diff --git a/actions/upload.php b/actions/upload.php index b3ad9ebc3..f2b626f01 100644 --- a/actions/upload.php +++ b/actions/upload.php @@ -120,11 +120,6 @@ foreach($_FILES as $key => $sent_file) { $file->extractExifData(); $file->saveThumbnails($image_lib); - //keep one file handy so we can add a notice to the river if single image option selected - if (!$file_for_river) { - $file_for_river = $file; - } - array_push($uploaded_images, $file->guid); // plugins can register to be told when a new image has been uploaded @@ -171,11 +166,24 @@ if (count($not_uploaded) > 0) { system_message(elgg_echo('tidypics:upl_success')); } +if (count($uploaded_images)) { + // Create a new batch object to contain these photos + $batch = new ElggObject(); + $batch->subtype = "tidypics_batch"; + $batch->access_id = $access_id; + $batch->container_guid = $album_guid; -if (count($uploaded_images) && $img_river_view == "1") { - add_to_river('river/object/image/create', 'create', $file_for_river->getObjectOwnerGUID(), $file_for_river->getGUID()); + if ($batch->save()) { + foreach ($uploaded_images as $uploaded_guid) { + add_entity_relationship($uploaded_guid, "belongs_to_batch", $batch->getGUID()); + } + if ($img_river_view == "batch") { + add_to_river('river/object/tidypics_batch/create', 'create', $batch->getObjectOwnerGUID(), $batch->getGUID()); + } + } } + if (count($uploaded_images) > 0) { $album->prependImageList($uploaded_images); } diff --git a/languages/en.php b/languages/en.php index 26ef79605..2bb18d959 100644 --- a/languages/en.php +++ b/languages/en.php @@ -164,7 +164,8 @@ The photo can be viewed here: %s", //images 'image:river:created' => "%s added the photo %s to album %s", - 'image:river:item' => "an photo", + 'image:river:created:multiple' => "%s added %u photos to album %s", + 'image:river:item' => "a photo", 'image:river:annotate' => "a comment on the photo", 'image:river:tagged' => "%s tagged %s in the photo %s", 'image:river:tagged:unknown' => "%s tagged %s in a photo", diff --git a/views/default/river/object/image/create.php b/views/default/river/object/image/create.php index 8a0a8deff..9de043e91 100644 --- a/views/default/river/object/image/create.php +++ b/views/default/river/object/image/create.php @@ -5,7 +5,7 @@ $image = get_entity($vars['item']->object_guid); if ($image->title) { $title = $image->title; } else { - $title = "untitled"; + $title = elgg_echo("untitled"); } $url = "getURL()}\">{$performed_by->name}"; diff --git a/views/default/river/object/tidypics_batch/create.php b/views/default/river/object/tidypics_batch/create.php new file mode 100644 index 000000000..e7a4d1409 --- /dev/null +++ b/views/default/river/object/tidypics_batch/create.php @@ -0,0 +1,51 @@ +subject_guid); +$batch = get_entity($vars['item']->object_guid); +$album = get_entity($batch->container_guid); + +if (!$batch || !$album) { + return true; +} + +// Get images related to this batch +$images = elgg_get_entities_from_relationship(array( + 'relationship' => 'belongs_to_batch', + 'relationship_guid' => $batch->getGUID(), + 'inverse_relationship' => true, + 'types' => array('object'), + 'subtypes' => array('image'), + 'offset' => 0, + )); + +// nothing to show +if (!$images) { + return true; +} + +$user_link = "getURL()}\">{$performed_by->name}"; +$album_link = "" . $album->title . ""; +if (count($images) > 1) { + $image_text = elgg_echo("image:river:created:multiple"); + $string = sprintf($image_text, $user_link, count($images), $album_link); +} else { + $image_text = elgg_echo("image:river:created"); + $title = $images[0]->title; + if (!$title) { + $title = elgg_echo("untitled"); + } + $image_link = "getURL() . "\">" . $title . ""; + $string = sprintf($image_text, $user_link, $image_link, $album_link); +} + +$string .= "
"; + +if (count($images)) { + foreach($images as $image) { + $string .= "getURL() . "\"> wwwroot . 'mod/tidypics/thumbnail.php?file_guid=' . $image->guid . '&size=thumb" class="tidypics_album_cover" alt="thumbnail"/> '; + } +} + +$string .= "
"; + +echo $string; diff --git a/views/default/tidypics/forms/ajax_upload.php b/views/default/tidypics/forms/ajax_upload.php index c703d293b..c81c9173d 100644 --- a/views/default/tidypics/forms/ajax_upload.php +++ b/views/default/tidypics/forms/ajax_upload.php @@ -112,7 +112,8 @@ $("#uploadify").uploadify({ { album_guid : 'guid; ?>', __elgg_token : '', - __elgg_ts : '' + __elgg_ts : '', + batch : '' } ); }, diff --git a/views/default/tidypics/forms/settings.php b/views/default/tidypics/forms/settings.php index dc5c02f15..c8a1b4bd9 100644 --- a/views/default/tidypics/forms/settings.php +++ b/views/default/tidypics/forms/settings.php @@ -93,7 +93,7 @@ $form_body .= elgg_view('input/pulldown', array( )); $form_body .= '
Note: If you want to select ImageMagick Command Line, first confirm that it is installed on your server.

'; -if (is_callable('exec') && !in_array('exec',$disablefunc)) { +if (is_callable('exec') && !in_array('exec', $disablefunc)) { // Image Magick Path $im_path = $plugin->im_path; if(!$im_path) { @@ -108,14 +108,14 @@ if (is_callable('exec') && !in_array('exec',$disablefunc)) { $form_body .= '

' . elgg_echo('tidypics:settings:heading:river') . '

'; $img_river_view = $plugin->img_river_view; if (!$img_river_view) { - $img_river_view = '1'; + $img_river_view = 'batch'; } $form_body .= '

' . elgg_echo('tidypics:settings:img_river_view'); $form_body .= elgg_view('input/pulldown', array( 'internalname' => 'params[img_river_view]', 'options_values' => array( 'all' => 'all', - '1' => '1', + 'batch' => '1', 'none' => 'none', ), 'value' => $img_river_view -- cgit v1.2.3