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(+) (limited to 'classes/TidypicsAlbum.php') 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 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(-) (limited to 'classes/TidypicsAlbum.php') 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