diff options
-rw-r--r-- | modules/comment/controllers/admin_manage_comments.php | 13 | ||||
-rw-r--r-- | modules/comment/views/admin_manage_comments.html.php | 2 | ||||
-rw-r--r-- | modules/gallery/libraries/Gallery_View.php | 46 | ||||
-rw-r--r-- | modules/gallery/libraries/MY_Pagination.php | 35 | ||||
-rw-r--r-- | modules/gallery/libraries/Theme_View.php | 46 | ||||
-rw-r--r-- | modules/user/controllers/admin_users.php | 8 | ||||
-rw-r--r-- | modules/user/views/admin_users.html.php | 2 | ||||
-rw-r--r-- | themes/admin_wind/views/pager.html.php | 44 | ||||
-rw-r--r-- | themes/admin_wind/views/paginator.html.php | 88 |
9 files changed, 151 insertions, 133 deletions
diff --git a/modules/comment/controllers/admin_manage_comments.php b/modules/comment/controllers/admin_manage_comments.php index 9bd1d7f6..effefcbb 100644 --- a/modules/comment/controllers/admin_manage_comments.php +++ b/modules/comment/controllers/admin_manage_comments.php @@ -45,6 +45,8 @@ class Admin_Manage_Comments_Controller extends Admin_Controller { $view = new Admin_View("admin.html"); $view->page_title = t("Manage comments"); + $view->page_type = "collection"; + $view->page_subtype = "admin_comments"; $view->content = new View("admin_manage_comments.html"); $view->content->counts = $this->_counts(); $view->content->menu = $this->_menu($view->content->counts); @@ -56,13 +58,12 @@ class Admin_Manage_Comments_Controller extends Admin_Controller { ->limit(self::$items_per_page) ->offset(($page - 1) * self::$items_per_page) ->find_all(); - $view->content->pager = new Pagination(); - $view->content->pager->initialize( - array("query_string" => "page", - "total_items" => $view->content->counts->$state, - "items_per_page" => self::$items_per_page, - "style" => "classic")); + // Pagination info + $view->page = $page; + $view->page_size = self::$items_per_page; + $view->children_count = $this->_counts()->$state; + $view->max_pages = ceil($view->children_count / $view->page_size); print $view; } diff --git a/modules/comment/views/admin_manage_comments.html.php b/modules/comment/views/admin_manage_comments.html.php index 34a28986..e7a61837 100644 --- a/modules/comment/views/admin_manage_comments.html.php +++ b/modules/comment/views/admin_manage_comments.html.php @@ -194,7 +194,7 @@ </table> <div class="g-paginator"> - <?= $pager ?> + <?= $theme->paginator() ?> </div> </div> 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" diff --git a/modules/gallery/libraries/MY_Pagination.php b/modules/gallery/libraries/MY_Pagination.php deleted file mode 100644 index e697c0bd..00000000 --- a/modules/gallery/libraries/MY_Pagination.php +++ /dev/null @@ -1,35 +0,0 @@ -<?php defined("SYSPATH") or die("No direct script access."); -/** - * Gallery - a web based photo album viewer and editor - * Copyright (C) 2000-2011 Bharat Mediratta - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. - */ -class Pagination extends Pagination_Core { - public function render($style=NULL) { - // Hide single page pagination - if ($this->auto_hide === TRUE AND $this->total_pages <= 1) { - return ""; - } - - if ($style === NULL) { - // Use default style - $style = $this->style; - } - - // Return rendered pagination view - return View::factory("pager.html", get_object_vars($this))->render(); - } -} diff --git a/modules/gallery/libraries/Theme_View.php b/modules/gallery/libraries/Theme_View.php index 152efc37..d6834464 100644 --- a/modules/gallery/libraries/Theme_View.php +++ b/modules/gallery/libraries/Theme_View.php @@ -139,52 +139,6 @@ class Theme_View_Core extends Gallery_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; - } - - /** * Print out any site wide status information. */ public function site_status() { diff --git a/modules/user/controllers/admin_users.php b/modules/user/controllers/admin_users.php index a3633b52..41be6c03 100644 --- a/modules/user/controllers/admin_users.php +++ b/modules/user/controllers/admin_users.php @@ -21,6 +21,8 @@ class Admin_Users_Controller extends Admin_Controller { public function index() { $view = new Admin_View("admin.html"); $view->page_title = t("Users and groups"); + $view->page_type = "collection"; + $view->page_subtype = "admin_users"; $view->content = new View("admin_users.html"); // @todo: add this as a config option @@ -29,6 +31,12 @@ class Admin_Users_Controller extends Admin_Controller { $builder = db::build(); $user_count = $builder->from("users")->count_records(); + // Pagination info + $view->page = $page; + $view->page_size = $page_size; + $view->children_count = $user_count; + $view->max_pages = ceil($view->children_count / $view->page_size); + $view->content->pager = new Pagination(); $view->content->pager->initialize( array("query_string" => "page", diff --git a/modules/user/views/admin_users.html.php b/modules/user/views/admin_users.html.php index a7bd6b27..033c9dae 100644 --- a/modules/user/views/admin_users.html.php +++ b/modules/user/views/admin_users.html.php @@ -110,7 +110,7 @@ </table> <div class="g-paginator"> - <?= $pager ?> + <?= $theme->paginator() ?> </div> </div> diff --git a/themes/admin_wind/views/pager.html.php b/themes/admin_wind/views/pager.html.php deleted file mode 100644 index 5fff5845..00000000 --- a/themes/admin_wind/views/pager.html.php +++ /dev/null @@ -1,44 +0,0 @@ -<?php defined("SYSPATH") or die("No direct script access.") ?> -<? // See http://docs.kohanaphp.com/libraries/pagination ?> -<ul class="g-paginator"> - <? /* @todo This message isn't easily localizable */ - $from_to_msg = t2("Item %from_number of %count", - "Items %from_number - %to_number of %count", - $total_items, - array("from_number" => $current_first_item, - "to_number" => $current_last_item, - "count" => $total_items)) ?> - <li> - <? if ($first_page): ?> - <a href="<?= str_replace('{page}', 1, $url) ?>" class="g-button ui-icon-left ui-state-default ui-corner-all"> - <span class="ui-icon ui-icon-seek-first"></span><?= t("First") ?></a> - <? else: ?> - <a class="g-button ui-icon-left ui-state-disabled ui-corner-all"> - <span class="ui-icon ui-icon-seek-first"></span><?= t("First") ?></a> - <? endif ?> - <? if ($previous_page): ?> - <a href="<?= str_replace('{page}', $previous_page, $url) ?>" class="g-button ui-icon-left ui-state-default ui-corner-all"> - <span class="ui-icon ui-icon-seek-prev"></span><?= t("Previous") ?></a> - <? else: ?> - <a class="g-button ui-icon-left ui-state-disabled ui-corner-all"> - <span class="ui-icon ui-icon-seek-prev"></span><?= t("Previous") ?></a> - <? endif ?> - </li> - <li class="g-info"><?= $from_to_msg ?></li> - <li class="g-text-right"> - <? if ($next_page): ?> - <a href="<?= str_replace('{page}', $next_page, $url) ?>" class="g-button ui-icon-right ui-state-default ui-corner-all"> - <span class="ui-icon ui-icon-seek-next"></span><?= t("Next") ?></a> - <? else: ?> - <a class="g-button ui-state-disabled ui-icon-right ui-corner-all"> - <span class="ui-icon ui-icon-seek-next"></span><?= t("Next") ?></a> - <? endif ?> - <? if ($last_page): ?> - <a href="<?= str_replace('{page}', $last_page, $url) ?>" class="g-button ui-icon-right ui-state-default ui-corner-all"> - <span class="ui-icon ui-icon-seek-end"></span><?= t("Last") ?></a> - <? else: ?> - <a class="g-button ui-state-disabled ui-icon-right ui-corner-all"> - <span class="ui-icon ui-icon-seek-end"></span><?= t("Last") ?></a> - <? endif ?> - </li> -</ul> diff --git a/themes/admin_wind/views/paginator.html.php b/themes/admin_wind/views/paginator.html.php new file mode 100644 index 00000000..3cb0223d --- /dev/null +++ b/themes/admin_wind/views/paginator.html.php @@ -0,0 +1,88 @@ +<?php defined("SYSPATH") or die("No direct script access.") ?> +<? +// This is a generic paginator for admin collections. Depending on the page type, there are +// different sets of variables available. With this data, you can make a paginator that +// lets you say "You're viewing photo 5 of 35", or "You're viewing photos 10 - 18 of 37" +// for album views. + +// +// Available variables for all page types: +// $page_type - "collection", "item", or "other" +// $page_subtype - "album", "movie", "photo", "tag", etc. +// $previous_page_url - the url to the previous page, if there is one +// $next_page_url - the url to the next page, if there is one +// $total - the total number of photos in this album +// +// Available for the "collection" page types: +// $page - what page number we're on +// $max_pages - the maximum page number +// $page_size - the page size +// $first_page_url - the url to the first page, or null if we're on the first page +// $last_page_url - the url to the last page, or null if we're on the last page +// $first_visible_position - the position number of the first visible photo on this page +// $last_visible_position - the position number of the last visible photo on this page +// +// Available for "item" page types: +// $position - the position number of this photo +// +?> + +<ul class="g-paginator ui-helper-clearfix"> + <li class="g-first"> + <? if ($page_type == "collection"): ?> + <? if (isset($first_page_url)): ?> + <a href="<?= $first_page_url ?>" class="g-button ui-icon-left ui-state-default ui-corner-all"> + <span class="ui-icon ui-icon-seek-first"></span><?= t("First") ?></a> + <? else: ?> + <a class="g-button ui-icon-left ui-state-disabled ui-corner-all"> + <span class="ui-icon ui-icon-seek-first"></span><?= t("First") ?></a> + <? endif ?> + <? endif ?> + + <? if (isset($previous_page_url)): ?> + <a href="<?= $previous_page_url ?>" class="g-button ui-icon-left ui-state-default ui-corner-all"> + <span class="ui-icon ui-icon-seek-prev"></span><?= t("Previous") ?></a> + <? else: ?> + <a class="g-button ui-icon-left ui-state-disabled ui-corner-all"> + <span class="ui-icon ui-icon-seek-prev"></span><?= t("Previous") ?></a> + <? endif ?> + </li> + + <li class="g-info"> + <? if ($total): ?> + <? if ($page_type == "collection"): ?> + <?= /* @todo This message isn't easily localizable */ + t2("Viewing %from_number of %count", + "Viewing %from_number - %to_number of %count", + $total, + array("from_number" => $first_visible_position, + "to_number" => $last_visible_position, + "count" => $total)) ?> + <? else: ?> + <?= t("%position of %total", array("position" => $position, "total" => $total)) ?> + <? endif ?> + <? else: ?> + <?= t("No photos") ?> + <? endif ?> + </li> + + <li class="g-text-right"> + <? if (isset($next_page_url)): ?> + <a href="<?= $next_page_url ?>" class="g-button ui-icon-right ui-state-default ui-corner-all"> + <span class="ui-icon ui-icon-seek-next"></span><?= t("Next") ?></a> + <? else: ?> + <a class="g-button ui-state-disabled ui-icon-right ui-corner-all"> + <span class="ui-icon ui-icon-seek-next"></span><?= t("Next") ?></a> + <? endif ?> + + <? if ($page_type == "collection"): ?> + <? if (isset($last_page_url)): ?> + <a href="<?= $last_page_url ?>" class="g-button ui-icon-right ui-state-default ui-corner-all"> + <span class="ui-icon ui-icon-seek-end"></span><?= t("Last") ?></a> + <? else: ?> + <a class="g-button ui-state-disabled ui-icon-right ui-corner-all"> + <span class="ui-icon ui-icon-seek-end"></span><?= t("Last") ?></a> + <? endif ?> + <? endif ?> + </li> +</ul> |