summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--modules/comment/controllers/admin_manage_comments.php13
-rw-r--r--modules/comment/views/admin_manage_comments.html.php2
-rw-r--r--modules/gallery/libraries/Gallery_View.php46
-rw-r--r--modules/gallery/libraries/MY_Pagination.php35
-rw-r--r--modules/gallery/libraries/Theme_View.php46
-rw-r--r--modules/user/controllers/admin_users.php8
-rw-r--r--modules/user/views/admin_users.html.php2
-rw-r--r--themes/admin_wind/views/pager.html.php44
-rw-r--r--themes/admin_wind/views/paginator.html.php88
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>