diff options
author | Brett Profitt <brett.profitt@gmail.com> | 2012-06-08 15:23:47 -0700 |
---|---|---|
committer | Brett Profitt <brett.profitt@gmail.com> | 2012-06-08 15:23:47 -0700 |
commit | c1da32e6a7e2f4a15a3b2d69cd38a1c0c164a99d (patch) | |
tree | f11839953914d0cc84306526c91ed60d0e746414 | |
parent | 90b3ef93ab20ceb49d0e2f5b40a87dd6608d05f4 (diff) | |
download | elgg-c1da32e6a7e2f4a15a3b2d69cd38a1c0c164a99d.tar.gz elgg-c1da32e6a7e2f4a15a3b2d69cd38a1c0c164a99d.tar.bz2 |
Fixed invalid SQL caused by sorting an empty album.
Also hiding slideshow and sort links for albums with no images.
-rw-r--r-- | actions/photos/album/sort.php | 7 | ||||
-rw-r--r-- | classes/TidypicsAlbum.php | 11 | ||||
-rw-r--r-- | languages/en.php | 2 | ||||
-rw-r--r-- | pages/photos/album/sort.php | 12 | ||||
-rw-r--r-- | start.php | 3 | ||||
-rw-r--r-- | 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 <a href="%s">basic uploader</a> 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, @@ -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; |