From 27ec3b4c6c9e5bd9fa61fd613b9b68af37eab1e4 Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Thu, 7 Feb 2013 15:08:55 -0500 Subject: Follow-on to 1e4d75c12072b49c3469f18af13bcf3439afc6b0 for #1975. Don't try to use an array index on a function return, that's not supported in PHP 5.3 --- modules/search/controllers/search.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'modules/search/controllers') diff --git a/modules/search/controllers/search.php b/modules/search/controllers/search.php index 673a281f..b54d7699 100644 --- a/modules/search/controllers/search.php +++ b/modules/search/controllers/search.php @@ -111,6 +111,7 @@ class Search_Controller extends Controller { } static function get_siblings($q, $album) { - return search::search_within_album(search::add_query_terms($q), $album, 1000, 1)[1]; + $result = search::search_within_album(search::add_query_terms($q), $album, 1000, 1); + return $result[1]; } } -- cgit v1.2.3 From 9dbe2e15ad9db3b2be53e46bc5f67d382fb4089d Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Sat, 9 Feb 2013 14:53:34 -0500 Subject: Extend siblings callbacks to take a $limit and an $offset for navigating large sibling sets. Useful for the thumbnav module since we don't want to iterate a thousand siblings to find the one we care about. Fixes #1999. --- modules/gallery/controllers/albums.php | 4 ++-- modules/gallery/libraries/Theme_View.php | 6 ++++-- modules/search/controllers/search.php | 4 ++-- 3 files changed, 8 insertions(+), 6 deletions(-) (limited to 'modules/search/controllers') diff --git a/modules/gallery/controllers/albums.php b/modules/gallery/controllers/albums.php index d545b415..0fb033a8 100644 --- a/modules/gallery/controllers/albums.php +++ b/modules/gallery/controllers/albums.php @@ -98,9 +98,9 @@ class Albums_Controller extends Items_Controller { "breadcrumbs" => Breadcrumb::array_from_item_parents($item)); } - static function get_siblings($item) { + static function get_siblings($item, $limit=null, $offset=null) { // @todo consider creating Item_Model::siblings() if we use this more broadly. - return $item->parent()->viewable()->children(); + return $item->parent()->viewable()->children($limit, $offset); } public function create($parent_id) { diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index cf384109..986fc8a2 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -86,8 +86,10 @@ class Theme_View_Core extends Gallery_View { return $this->item; } - public function siblings() { - return call_user_func_array($this->siblings_callback[0], $this->siblings_callback[1]); + public function siblings($limit=null, $offset=null) { + return call_user_func_array( + $this->siblings_callback[0], + array_merge($this->siblings_callback[1], array($offset, $limit))); } public function tag() { diff --git a/modules/search/controllers/search.php b/modules/search/controllers/search.php index b54d7699..25ccd81c 100644 --- a/modules/search/controllers/search.php +++ b/modules/search/controllers/search.php @@ -110,8 +110,8 @@ class Search_Controller extends Controller { Breadcrumb::instance($item->title, $item->url())->set_last())); } - static function get_siblings($q, $album) { - $result = search::search_within_album(search::add_query_terms($q), $album, 1000, 1); + static function get_siblings($q, $album, $limit=1000, $offset=1) { + $result = search::search_within_album(search::add_query_terms($q), $album, $limit, $offset); return $result[1]; } } -- cgit v1.2.3 From 72a6a8abafb90321ecd4e2101eac03f86c7c07dd Mon Sep 17 00:00:00 2001 From: Bharat Mediratta Date: Thu, 14 Feb 2013 14:40:34 -0500 Subject: Follow-on to 9dbe2e15ad9db3b2be53e46bc5f67d382fb4089d for #1999. Fix an issue where siblings() by itself throws an error. The problem is that Theme_View::siblings() passes a null offset and limit to the callback which gets passed down to search::search_within_album, which creates its query in raw SQL and doesn't check for a null offset/limit. We want a reasonable limit on the size of the set here (and 1000 is probably wayyy too high so lower that to 100) so amend get_siblings to stop using default parameters and actually check the inputs. Author: Bharat Mediratta Date: Sat Feb 9 14:53:34 2013 -0500 Extend siblings callbacks to take a $limit and an $offset for navigating large sibling sets. Useful for the thumbnav module since we don't want to iterate a thousand siblings to find the one we care about. Fixes #1999. --- modules/search/controllers/search.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'modules/search/controllers') diff --git a/modules/search/controllers/search.php b/modules/search/controllers/search.php index 25ccd81c..753d9b69 100644 --- a/modules/search/controllers/search.php +++ b/modules/search/controllers/search.php @@ -110,7 +110,13 @@ class Search_Controller extends Controller { Breadcrumb::instance($item->title, $item->url())->set_last())); } - static function get_siblings($q, $album, $limit=1000, $offset=1) { + static function get_siblings($q, $album, $limit, $offset) { + if (!isset($limit)) { + $limit = 100; + } + if (!isset($offset)) { + $offset = 1; + } $result = search::search_within_album(search::add_query_terms($q), $album, $limit, $offset); return $result[1]; } -- cgit v1.2.3