diff options
| author | Tim Almdal <tnalmdal@shaw.ca> | 2011-04-27 19:30:00 -0700 |
|---|---|---|
| committer | Tim Almdal <tnalmdal@shaw.ca> | 2011-04-27 19:30:00 -0700 |
| commit | 4e20e71d0375ed65d75dbdb12113f737db90b3e7 (patch) | |
| tree | 51d15ed4ac3ee4f44886f94ed8c3197c76d050ac /modules/gallery/libraries/Gallery_View.php | |
| parent | 7f48671186a4bf3a4745cd7a31b48a891dd83078 (diff) | |
| parent | 7577d02fe2f2c37a79caf6a32b246f5a046c917a (diff) | |
Merge branch 'master' of git@github.com:gallery/gallery3
Diffstat (limited to 'modules/gallery/libraries/Gallery_View.php')
| -rw-r--r-- | modules/gallery/libraries/Gallery_View.php | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/modules/gallery/libraries/Gallery_View.php b/modules/gallery/libraries/Gallery_View.php index 1395686c..e04b9169 100644 --- a/modules/gallery/libraries/Gallery_View.php +++ b/modules/gallery/libraries/Gallery_View.php @@ -31,6 +31,52 @@ class Gallery_View_Core extends View { } /** + * Set up the data and render a pager. + * + * See themes/wind/views/pager.html for documentation on the variables generated here. + */ + public function paginator() { + $v = new View("paginator.html"); + $v->page_type = $this->page_type; + $v->page_subtype = $this->page_subtype; + $v->first_page_url = null; + $v->previous_page_url = null; + $v->next_page_url = null; + $v->last_page_url = null; + + if ($this->page_type == "collection") { + $v->page = $this->page; + $v->max_pages = $this->max_pages; + $v->total = $this->children_count; + + if ($this->page != 1) { + $v->first_page_url = url::site(url::merge(array("page" => 1))); + $v->previous_page_url = url::site(url::merge(array("page" => $this->page - 1))); + } + + if ($this->page != $this->max_pages) { + $v->next_page_url = url::site(url::merge(array("page" => $this->page + 1))); + $v->last_page_url = url::site(url::merge(array("page" => $this->max_pages))); + } + + $v->first_visible_position = ($this->page - 1) * $this->page_size + 1; + $v->last_visible_position = min($this->page * $this->page_size, $v->total); + } else if ($this->page_type == "item") { + $v->position = $this->position; + $v->total = $this->sibling_count; + if ($this->previous_item) { + $v->previous_page_url = $this->previous_item->url(); + } + + if ($this->next_item) { + $v->next_page_url = $this->next_item->url(); + } + } + + return $v; + } + + /** * Begin gather up scripts or css files so that they can be combined into a single request. * * @param $types a comma separated list of types to combine, eg "script,css" |
