From b3438c2d88ba48529275cadd57849cad7fc08e02 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Wed, 21 Mar 2012 17:54:36 -0700 Subject: Fixes #23. Added a menu item for setting the cover image. --- actions/photos/album/set_cover.php | 23 +++++++++++++++++++++++ languages/en.php | 4 ++++ start.php | 32 ++++++++++++++++++++++++++++++-- 3 files changed, 57 insertions(+), 2 deletions(-) create mode 100644 actions/photos/album/set_cover.php diff --git a/actions/photos/album/set_cover.php b/actions/photos/album/set_cover.php new file mode 100644 index 000000000..b37bb9c90 --- /dev/null +++ b/actions/photos/album/set_cover.php @@ -0,0 +1,23 @@ +setCoverImageGuid($image_guid)) { + system_message(elgg_echo('album:save_cover_image')); + forward(REFERER); +} else { + register_error(elgg_echo('album:cannot_save_cover_image')); + forward(REFERER); +} \ No newline at end of file diff --git a/languages/en.php b/languages/en.php index efae155b3..0d6ea2db8 100644 --- a/languages/en.php +++ b/languages/en.php @@ -163,6 +163,7 @@ $english = array( 'album:desc' => "Description", 'album:tags' => "Tags", 'album:cover' => "Make image album cover?", + 'album:cover_link' => 'Set cover image', 'tidypics:quota' => "Quota usage:", 'tidypics:uploader:choose' => "Choose photos", 'tidypics:uploader:upload' => "Upload photos", @@ -252,6 +253,7 @@ The photo can be viewed here: %s", 'album:deleted' => "Your album was successfully deleted.", 'album:delete:confirm' => "Are you sure you want to delete this album?", 'album:created' => "Your new album has been created.", + 'album:save_cover_image' => 'Cover image saved.', 'tidypics:settings:save:ok' => 'Successfully saved the Tidypics plugin settings', 'tidypics:album:sorted' => 'The album %s is sorted', 'tidypics:upgrade:success' => 'Upgrade of Tidypics a success', @@ -277,6 +279,8 @@ The photo can be viewed here: %s", 'album:uploadfailed' => "Sorry; we could not save your album.", 'album:deletefailed' => "Your album could not be deleted.", 'album:blank' => "Please give this album a title.", + 'album:invalid_album' => 'Invalid album', + 'album:cannot_save_cover_image' => 'Cannot save cover image', 'tidypics:upgrade:failed' => "The upgrade of Tidypics failed", ); diff --git a/start.php b/start.php index 1129c7f2f..e98e19261 100644 --- a/start.php +++ b/start.php @@ -88,17 +88,21 @@ function tidypics_init() { */ // Register actions $base_dir = elgg_get_plugins_path() . 'tidypics/actions/photos'; + elgg_register_action("photos/delete", "$base_dir/delete.php"); + elgg_register_action("photos/album/save", "$base_dir/album/save.php"); elgg_register_action("photos/album/sort", "$base_dir/album/sort.php"); - elgg_register_action("photos/delete", "$base_dir/delete.php"); + elgg_register_action("photos/album/set_cover", "$base_dir/album/set_cover.php"); + elgg_register_action("photos/image/upload", "$base_dir/image/upload.php"); elgg_register_action("photos/image/save", "$base_dir/image/save.php"); - elgg_register_action("photos/batch/edit", "$base_dir/batch/edit.php"); elgg_register_action("photos/image/ajax_upload", "$base_dir/image/ajax_upload.php", 'logged_in'); elgg_register_action("photos/image/ajax_upload_complete", "$base_dir/image/ajax_upload_complete.php", 'logged_in'); elgg_register_action("photos/image/tag", "$base_dir/image/tag.php"); elgg_register_action("photos/image/untag", "$base_dir/image/untag.php"); + elgg_register_action("photos/batch/edit", "$base_dir/batch/edit.php"); + elgg_register_action("photos/admin/settings", "$base_dir/admin/settings.php", 'admin'); elgg_register_action("photos/admin/create_thumbnails", "$base_dir/admin/create_thumbnails.php", 'admin'); elgg_register_action("photos/admin/upgrade", "$base_dir/admin/upgrade.php", 'admin'); @@ -293,6 +297,30 @@ function tidypics_entity_menu_setup($hook, $type, $return, $params) { } if (elgg_instanceof($entity, 'object', 'image')) { + $album = $entity->getContainerEntity(); + $cover_guid = $album->getCoverImageGuid(); + if ($cover_guid != $entity->getGUID() && $album->canEdit()) { + $url = 'action/photos/album/set_cover' + . '?image_guid=' . $entity->getGUID() + . '&album_guid=' . $album->getGUID(); + + $params = array( + 'href' => $url, + 'text' => elgg_echo('album:cover_link'), + 'is_action' => true, + 'is_trusted' => true, + 'confirm' => elgg_echo('album:cover') + ); + $text = elgg_view('output/confirmlink', $params); + + $options = array( + 'name' => 'set_cover', + 'text' => $text, + 'priority' => 80, + ); + $return[] = ElggMenuItem::factory($options); + } + if (elgg_get_plugin_setting('view_count', 'tidypics')) { $view_info = $entity->getViewInfo(); $text = elgg_echo('tidypics:views', array((int)$view_info['total'])); -- cgit v1.2.3 From 271e824fae382c2b605d73135597a42323f691a9 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Thu, 22 Mar 2012 13:03:17 -0700 Subject: Fixed deprecated use of get_annotation(). --- views/default/photos/tagging/tag.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/default/photos/tagging/tag.php b/views/default/photos/tagging/tag.php index 6f6af968a..6bdc0db02 100644 --- a/views/default/photos/tagging/tag.php +++ b/views/default/photos/tagging/tag.php @@ -29,7 +29,7 @@ if ($vars['tag']->type == 'user') { } $delete = ''; -$annotation = get_annotation($vars['tag']->annotation_id); +$annotation = elgg_get_annotation_from_id($vars['tag']->annotation_id); if ($annotation->canEdit()) { $url = elgg_http_add_url_query_elements('action/photos/image/untag', array( -- cgit v1.2.3 From 7a4d1861e23798e2fda7d9d3c750b8d13b55c5a8 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Fri, 6 Apr 2012 10:30:26 -0700 Subject: Started adding back quota support. --- actions/photos/image/ajax_upload.php | 2 +- classes/TidypicsImage.php | 5 +++++ languages/en.php | 1 + 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/actions/photos/image/ajax_upload.php b/actions/photos/image/ajax_upload.php index d6b083cf6..daa824c42 100644 --- a/actions/photos/image/ajax_upload.php +++ b/actions/photos/image/ajax_upload.php @@ -22,7 +22,7 @@ if (empty($_FILES)) { exit; } -$file = $_FILES['Image']; +$file = $_FILES[$file_var_name]; $mime = tp_upload_get_mimetype($file['name']); if ($mime == 'unknown') { diff --git a/classes/TidypicsImage.php b/classes/TidypicsImage.php index c0b5de723..dd4324468 100644 --- a/classes/TidypicsImage.php +++ b/classes/TidypicsImage.php @@ -244,6 +244,11 @@ class TidypicsImage extends ElggFile { trigger_error('Tidypics warning: image memory size too large for resizing so rejecting', E_USER_WARNING); throw new Exception(elgg_echo('tidypics:image_pixels')); } + + // make sure file fits quota + if (!tp_upload_check_quota($data['size'], elgg_get_logged_in_user_guid())) { + throw new Exception(elgg_echo('tidypics:cannot_upload_exceeds_quota')); + } } /** diff --git a/languages/en.php b/languages/en.php index 0d6ea2db8..b765508a6 100644 --- a/languages/en.php +++ b/languages/en.php @@ -274,6 +274,7 @@ The photo can be viewed here: %s", 'image:downloadfailed' => "Sorry; this image is not available.", 'tidypics:nosettings' => "Admin of this site has not set photo album settings.", 'tidypics:exceed_quota' => "You have exceeded the quota set by the administrator", + 'tidypics:cannot_upload_exceeds_quota' => 'Image not uploaded. File size exceeds available quota.', 'images:notedited' => "Not all images were successfully updated", 'album:none' => "No albums have been created yet.", 'album:uploadfailed' => "Sorry; we could not save your album.", -- cgit v1.2.3 From 6ad5f07c03b8a6763d8c07e86d43fa7be7583d05 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Fri, 6 Apr 2012 11:04:32 -0700 Subject: Fixes invalid SQL when viewing an empty album. --- classes/TidypicsAlbum.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/classes/TidypicsAlbum.php b/classes/TidypicsAlbum.php index ad1a357de..1fd98c76b 100644 --- a/classes/TidypicsAlbum.php +++ b/classes/TidypicsAlbum.php @@ -206,8 +206,14 @@ class TidypicsAlbum extends ElggObject { } $list = unserialize($listString); + // if empty don't need to check the permissions. + if (!$list) { + return array(); + } + // check access levels $guidsString = implode(',', $list); + $options = array( 'wheres' => array("e.guid IN ($guidsString)"), 'order_by' => "FIELD(e.guid, $guidsString)", -- cgit v1.2.3 From d5ac522fcfd83c07c9eb879b6d7389be1b5c6dc2 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Fri, 13 Apr 2012 16:18:46 -0700 Subject: Fixed ajax uploading for walled garden users. --- start.php | 3 ++- views/default/js/photos/uploading.php | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/start.php b/start.php index e98e19261..2ef7dcb4c 100644 --- a/start.php +++ b/start.php @@ -78,7 +78,8 @@ function tidypics_init() { elgg_register_plugin_hook_handler('notify:entity:message', 'object', 'tidypics_notify_message'); // ajax handler for uploads when use_only_cookies is set - elgg_register_plugin_hook_handler('forward', 'csrf', 'tidypics_ajax_session_handler'); + // using the all forward hook to work with walled gardens. + elgg_register_plugin_hook_handler('forward', 'all', 'tidypics_ajax_session_handler'); /* // Register for notifications diff --git a/views/default/js/photos/uploading.php b/views/default/js/photos/uploading.php index cb79dc77c..ae66226b0 100644 --- a/views/default/js/photos/uploading.php +++ b/views/default/js/photos/uploading.php @@ -78,6 +78,9 @@ elgg.tidypics.uploading.init = function() { if (data.fileCount == 0) { $("#tidypics-upload-button").addClass('tidypics-disable'); } + }, + 'onError' : function (event, ID, fileObj, errorObj) { + // @todo do something useful with the limited information in the errorObj. } }); -- cgit v1.2.3 From a965e8a7bb94d8ac870fd6b773a3aa7949db960a Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Fri, 13 Apr 2012 16:35:22 -0700 Subject: Using the original file name for photo title if none is specified. --- actions/photos/admin/create_thumbnails.php | 2 +- actions/photos/album/sort.php | 2 +- actions/photos/image/tag.php | 2 +- classes/TidypicsImage.php | 6 +++++- pages/photos/album/sort.php | 2 +- pages/photos/batch/edit.php | 2 +- pages/photos/image/view.php | 8 ++++---- start.php | 4 ++-- views/default/object/image.php | 2 +- views/default/river/object/image/tag.php | 2 +- 10 files changed, 18 insertions(+), 14 deletions(-) diff --git a/actions/photos/admin/create_thumbnails.php b/actions/photos/admin/create_thumbnails.php index f2e9b26e2..dfb5d4ed1 100644 --- a/actions/photos/admin/create_thumbnails.php +++ b/actions/photos/admin/create_thumbnails.php @@ -23,7 +23,7 @@ if (!$filename || !$container_guid) { forward(REFERER); } -$title = $image->title; +$title = $image->getTitle(); $prefix = "image/$container_guid/"; $filestorename = substr($filename, strlen($prefix)); diff --git a/actions/photos/album/sort.php b/actions/photos/album/sort.php index 613747784..453f51ac5 100644 --- a/actions/photos/album/sort.php +++ b/actions/photos/album/sort.php @@ -14,5 +14,5 @@ $guids = explode(',', $guids); $album->setImageList($guids); -system_message(elgg_echo('tidypics:album:sorted', array($album->title))); +system_message(elgg_echo('tidypics:album:sorted', array($album->getTitle()))); forward($album->getURL()); \ No newline at end of file diff --git a/actions/photos/image/tag.php b/actions/photos/image/tag.php index 20f476944..e623bd546 100644 --- a/actions/photos/image/tag.php +++ b/actions/photos/image/tag.php @@ -92,7 +92,7 @@ if ($annotation_id) { elgg_echo('tidypics:tag:subject'), sprintf( elgg_echo('tidypics:tag:body'), - $image->title, + $image->getTitle(), $tagger->name, $image->getURL() ) diff --git a/classes/TidypicsImage.php b/classes/TidypicsImage.php index dd4324468..26a3483a9 100644 --- a/classes/TidypicsImage.php +++ b/classes/TidypicsImage.php @@ -90,7 +90,11 @@ class TidypicsImage extends ElggFile { * @return string */ public function getTitle() { - return $this->title; + if ($this->title) { + return $this->title; + } else { + return $this->originalfilename; + } } /** diff --git a/pages/photos/album/sort.php b/pages/photos/album/sort.php index a1d890be1..8b6d1bfc7 100644 --- a/pages/photos/album/sort.php +++ b/pages/photos/album/sort.php @@ -30,7 +30,7 @@ if (elgg_instanceof($owner, 'group')) { } else { elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username"); } -elgg_push_breadcrumb($album->title, $album->getURL()); +elgg_push_breadcrumb($album->getTitle(), $album->getURL()); elgg_push_breadcrumb(elgg_echo('album:sort')); diff --git a/pages/photos/batch/edit.php b/pages/photos/batch/edit.php index b96ddf408..ca9a55b18 100644 --- a/pages/photos/batch/edit.php +++ b/pages/photos/batch/edit.php @@ -29,7 +29,7 @@ $title = elgg_echo('tidypics:editprops'); elgg_push_breadcrumb(elgg_echo('photos'), "photos/all"); elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username"); -elgg_push_breadcrumb($album->title, $album->getURL()); +elgg_push_breadcrumb($album->getTitle(), $album->getURL()); elgg_push_breadcrumb($title); $content = elgg_view_form('photos/batch/edit', array(), array('batch' => $batch)); diff --git a/pages/photos/image/view.php b/pages/photos/image/view.php index 6db9ff529..6bd0257e0 100644 --- a/pages/photos/image/view.php +++ b/pages/photos/image/view.php @@ -36,8 +36,8 @@ if (elgg_instanceof($owner, 'group')) { } else { elgg_push_breadcrumb($owner->name, "photos/owner/$owner->username"); } -elgg_push_breadcrumb($album->title, $album->getURL()); -elgg_push_breadcrumb($photo->title); +elgg_push_breadcrumb($album->getTitle(), $album->getURL()); +elgg_push_breadcrumb($photo->getTitle()); if (elgg_get_plugin_setting('download_link', 'tidypics')) { // add download button to title menu @@ -54,11 +54,11 @@ $content = elgg_view_entity($photo, array('full_view' => true)); $body = elgg_view_layout('content', array( 'filter' => false, 'content' => $content, - 'title' => $photo->title, + 'title' => $photo->getTitle(), 'sidebar' => elgg_view('tidypics/sidebar', array( 'page' => 'view', 'image' => $photo, )), )); -echo elgg_view_page($photo->title, $body); +echo elgg_view_page($photo->getTitle(), $body); diff --git a/start.php b/start.php index 2ef7dcb4c..c56382655 100644 --- a/start.php +++ b/start.php @@ -423,14 +423,14 @@ function tidypics_notify_message($hook, $type, $result, $params) { if ($entity->first_upload) { $descr = $entity->description; - $title = $entity->title; + $title = $entity->getTitle(); $owner = $entity->getOwnerEntity(); return elgg_echo('tidypics:newalbum', array($owner->name)) . ': ' . $title . "\n\n" . $descr . "\n\n" . $entity->getURL(); } else { if ($entity->shouldNotify()) { $descr = $entity->description; - $title = $entity->title; + $title = $entity->getTitle(); $owner = $entity->getOwnerEntity(); return elgg_echo('tidypics:updatealbum', array($owner->name, $title)) . ': ' . $entity->getURL(); diff --git a/views/default/object/image.php b/views/default/object/image.php index 12d58440d..2aa76d48f 100644 --- a/views/default/object/image.php +++ b/views/default/object/image.php @@ -25,7 +25,7 @@ include_once dirname(dirname(dirname(dirname(__FILE__)))) . "/lib/exif.php"; $image = $vars['entity']; $image_guid = $image->getGUID(); $tags = $image->tags; -$title = $image->title; +$title = $image->getTitle(); $desc = $image->description; $owner = $image->getOwnerEntity(); $friendlytime = friendly_time($image->time_created); diff --git a/views/default/river/object/image/tag.php b/views/default/river/object/image/tag.php index a59066c67..7e6f0313d 100644 --- a/views/default/river/object/image/tag.php +++ b/views/default/river/object/image/tag.php @@ -11,7 +11,7 @@ if ($annotation) { return; } - $image_title = $image->title; + $image_title = $image->getTitle(); } $tagger_link = "getURL()}\">$tagger->name"; -- cgit v1.2.3 From 5c94048205b6234bab5eac1560c1b5b9e6e74494 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Fri, 13 Apr 2012 17:58:09 -0700 Subject: Fixes #25. Replaced deprecated calls to getObjectOwnerGuid with getOwnerGuid. --- actions/photos/image/ajax_upload.php | 2 +- actions/photos/image/ajax_upload_complete.php | 2 +- actions/photos/image/upload.php | 4 ++-- lib/exif.php | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/actions/photos/image/ajax_upload.php b/actions/photos/image/ajax_upload.php index daa824c42..312bc598c 100644 --- a/actions/photos/image/ajax_upload.php +++ b/actions/photos/image/ajax_upload.php @@ -44,7 +44,7 @@ try { $album->prependImageList(array($image->guid)); if (elgg_get_plugin_setting('img_river_view', 'tidypics') === "all") { - add_to_river('river/object/image/create', 'create', $image->getObjectOwnerGUID(), $image->getGUID()); + add_to_river('river/object/image/create', 'create', $image->getOwnerGUID(), $image->getGUID()); } echo elgg_echo('success'); diff --git a/actions/photos/image/ajax_upload_complete.php b/actions/photos/image/ajax_upload_complete.php index 6d398b3aa..358a4fc6f 100644 --- a/actions/photos/image/ajax_upload_complete.php +++ b/actions/photos/image/ajax_upload_complete.php @@ -41,7 +41,7 @@ if ($images) { // "added images to album" river if ($img_river_view == "batch" && $album->new_album == false) { - add_to_river('river/object/tidypics_batch/create', 'create', $batch->getObjectOwnerGUID(), $batch->getGUID()); + add_to_river('river/object/tidypics_batch/create', 'create', $batch->getOwnerGUID(), $batch->getGUID()); } // "created album" river diff --git a/actions/photos/image/upload.php b/actions/photos/image/upload.php index b917a1598..cb0a2f90d 100644 --- a/actions/photos/image/upload.php +++ b/actions/photos/image/upload.php @@ -68,7 +68,7 @@ foreach ($_FILES['images']['name'] as $index => $value) { array_push($uploaded_images, $image->getGUID()); if ($img_river_view == "all") { - add_to_river('river/object/image/create', 'create', $image->getObjectOwnerGUID(), $image->getGUID()); + add_to_river('river/object/image/create', 'create', $image->getOwnerGUID(), $image->getGUID()); } } } @@ -89,7 +89,7 @@ if (count($uploaded_images)) { // "added images to album" river if ($img_river_view == "batch" && $album->new_album == false) { - add_to_river('river/object/tidypics_batch/create', 'create', $batch->getObjectOwnerGUID(), $batch->getGUID()); + add_to_river('river/object/tidypics_batch/create', 'create', $batch->getOwnerGUID(), $batch->getGUID()); } // "created album" river diff --git a/lib/exif.php b/lib/exif.php index 55612a433..43a640336 100644 --- a/lib/exif.php +++ b/lib/exif.php @@ -24,7 +24,7 @@ function td_get_exif($file) { $filename = $file->getFilenameOnFilestore(); $exif = exif_read_data($filename); - create_metadata($file->getGUID(), "tp_exif", serialize($exif), "text", $file->getObjectOwnerGUID(), ACCESS_PUBLIC); + create_metadata($file->getGUID(), "tp_exif", serialize($exif), "text", $file->getOwnerGUID(), ACCESS_PUBLIC); } /** -- cgit v1.2.3 From d97db06f5cf897ebe6e346367a8fe0e44c0b19b2 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Fri, 13 Apr 2012 18:03:25 -0700 Subject: Fixes #27. Removing limit for batch edit form. --- views/default/forms/photos/batch/edit.php | 1 + 1 file changed, 1 insertion(+) diff --git a/views/default/forms/photos/batch/edit.php b/views/default/forms/photos/batch/edit.php index fa017ac96..d843d8349 100644 --- a/views/default/forms/photos/batch/edit.php +++ b/views/default/forms/photos/batch/edit.php @@ -17,6 +17,7 @@ $images = elgg_get_entities_from_relationship(array( 'relationship' => 'belongs_to_batch', 'relationship_guid' => $batch->getGUID(), 'inverse_relationship' => true, + 'limit' => 0 )); echo '
    '; -- cgit v1.2.3 From 90b3ef93ab20ceb49d0e2f5b40a87dd6608d05f4 Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Fri, 13 Apr 2012 18:18:08 -0700 Subject: Fixed incorrect error message when saving an image without a title. --- actions/photos/image/save.php | 2 +- languages/en.php | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/actions/photos/image/save.php b/actions/photos/image/save.php index 535ae8bbb..1cb65b1e8 100644 --- a/actions/photos/image/save.php +++ b/actions/photos/image/save.php @@ -16,7 +16,7 @@ $guid = get_input('guid'); elgg_make_sticky_form('tidypics'); if (empty($title)) { - register_error(elgg_echo("album:blank")); + register_error(elgg_echo("image:blank")); forward(REFERER); } diff --git a/languages/en.php b/languages/en.php index b765508a6..0f7aa8d69 100644 --- a/languages/en.php +++ b/languages/en.php @@ -271,17 +271,22 @@ The photo can be viewed here: %s", 'tidypics:not_image' => "This is not a recognized image type", 'tidypics:deletefailed' => "Sorry. Deletion failed.", 'tidypics:deleted' => "Successful deletion.", - 'image:downloadfailed' => "Sorry; this image is not available.", 'tidypics:nosettings' => "Admin of this site has not set photo album settings.", 'tidypics:exceed_quota' => "You have exceeded the quota set by the administrator", 'tidypics:cannot_upload_exceeds_quota' => 'Image not uploaded. File size exceeds available quota.', - 'images:notedited' => "Not all images were successfully updated", + 'album:none' => "No albums have been created yet.", 'album:uploadfailed' => "Sorry; we could not save your album.", 'album:deletefailed' => "Your album could not be deleted.", 'album:blank' => "Please give this album a title.", 'album:invalid_album' => 'Invalid album', 'album:cannot_save_cover_image' => 'Cannot save cover image', + + 'image:downloadfailed' => "Sorry; this image is not available.", + 'images:notedited' => "Not all images were successfully updated", + 'image:blank' => 'Please give this image a title.', + 'image:error' => 'Could not save image.', + 'tidypics:upgrade:failed' => "The upgrade of Tidypics failed", ); -- cgit v1.2.3 From c1da32e6a7e2f4a15a3b2d69cd38a1c0c164a99d Mon Sep 17 00:00:00 2001 From: Brett Profitt Date: Fri, 8 Jun 2012 15:23:47 -0700 Subject: Fixed invalid SQL caused by sorting an empty album. Also hiding slideshow and sort links for albums with no images. --- actions/photos/album/sort.php | 7 +++++-- classes/TidypicsAlbum.php | 11 +++++++++-- languages/en.php | 2 ++ pages/photos/album/sort.php | 12 +++++++++++- start.php | 3 ++- views/default/photos/group_module.php | 2 +- 6 files changed, 30 insertions(+), 7 deletions(-) diff --git a/actions/photos/album/sort.php b/actions/photos/album/sort.php index 453f51ac5..fd62a7ba7 100644 --- a/actions/photos/album/sort.php +++ b/actions/photos/album/sort.php @@ -12,7 +12,10 @@ if (!$album) { $guids = get_input('guids'); $guids = explode(',', $guids); -$album->setImageList($guids); +if ($album->setImageList($guids)) { + system_message(elgg_echo('tidypics:album:sorted', array($album->getTitle()))); +} else { + register_error(elgg_echo('tidypics:album:could_not_sort', array($album->getTitle()))); +} -system_message(elgg_echo('tidypics:album:sorted', array($album->getTitle()))); forward($album->getURL()); \ No newline at end of file diff --git a/classes/TidypicsAlbum.php b/classes/TidypicsAlbum.php index 1fd98c76b..57bdcf707 100644 --- a/classes/TidypicsAlbum.php +++ b/classes/TidypicsAlbum.php @@ -207,7 +207,7 @@ class TidypicsAlbum extends ElggObject { $list = unserialize($listString); // if empty don't need to check the permissions. - if (!$list) { + if (!$list || $list[0] == '') { return array(); } @@ -231,8 +231,15 @@ class TidypicsAlbum extends ElggObject { * @param array $list An indexed array of image guids */ public function setImageList($list) { + // validate data + foreach ($list as $guid) { + if (!filter_var($guid, FILTER_VALIDATE_INT)) { + return false; + } + } + $listString = serialize($list); - $this->orderedImages = $listString; + return $this->orderedImages = $listString; } /** diff --git a/languages/en.php b/languages/en.php index 0f7aa8d69..624b5234c 100644 --- a/languages/en.php +++ b/languages/en.php @@ -172,6 +172,7 @@ $english = array( 'tidypics:uploader:instructs' => 'There are three easy steps for adding photos to your album using this uploader: choosing, uploading, and describing them. If you do not have Flash, there is also a basic uploader available.', 'tidypics:uploader:basic' => 'You can upload up to 10 photos at a time (%s MB maximum per photo)', 'tidypics:sort:instruct' => 'Sort the album photos by dragging and dropping the images. Then click the save button.', + 'tidypics:sort:no_images' => 'No images found to sort. Upload images using the link above.', // albums 'album:num' => '%s photos', @@ -256,6 +257,7 @@ The photo can be viewed here: %s", 'album:save_cover_image' => 'Cover image saved.', 'tidypics:settings:save:ok' => 'Successfully saved the Tidypics plugin settings', 'tidypics:album:sorted' => 'The album %s is sorted', + 'tidypics:album:could_not_sort' => 'Could not sort the album %s. Make sure there are images in the album and try again.', 'tidypics:upgrade:success' => 'Upgrade of Tidypics a success', //Error messages diff --git a/pages/photos/album/sort.php b/pages/photos/album/sort.php index 8b6d1bfc7..005205dd5 100644 --- a/pages/photos/album/sort.php +++ b/pages/photos/album/sort.php @@ -33,8 +33,18 @@ if (elgg_instanceof($owner, 'group')) { elgg_push_breadcrumb($album->getTitle(), $album->getURL()); elgg_push_breadcrumb(elgg_echo('album:sort')); +elgg_register_menu_item('title', array( + 'name' => 'upload', + 'href' => 'photos/upload/' . $album->getGUID(), + 'text' => elgg_echo('images:upload'), + 'link_class' => 'elgg-button elgg-button-action', +)); -$content = elgg_view_form('photos/album/sort', array(), array('album' => $album)); +if ($album->getSize()) { + $content = elgg_view_form('photos/album/sort', array(), array('album' => $album)); +} else { + $content = elgg_echo('tidypics:sort:no_images'); +} $body = elgg_view_layout('content', array( 'filter' => false, diff --git a/start.php b/start.php index c56382655..13a9e2d85 100644 --- a/start.php +++ b/start.php @@ -347,7 +347,8 @@ function tidypics_entity_menu_setup($hook, $type, $return, $params) { } } - if (elgg_instanceof($entity, 'object', 'album')) { + // only show these options if there are images + if (elgg_instanceof($entity, 'object', 'album') && $entity->getSize() > 0) { $url = $entity->getURL() . '?limit=50&view=rss'; $url = elgg_format_url($url); $slideshow_link = "javascript:PicLensLite.start({maxScale:0, feedUrl:'$url'})"; diff --git a/views/default/photos/group_module.php b/views/default/photos/group_module.php index aa0e7b3ff..de7a451c4 100644 --- a/views/default/photos/group_module.php +++ b/views/default/photos/group_module.php @@ -3,7 +3,7 @@ * Group blog module */ -$group = elgg_get_page_owner_entity(); +$group = $vars['entity']; if ($group->photos_enable == "no") { return true; -- cgit v1.2.3