[pLog-svn] r3969 -
plog/branches/lifetype-1.1.1/class/template/smarty/plugins
oscar at devel.lifetype.net
oscar at devel.lifetype.net
Thu Sep 14 13:10:03 GMT 2006
Author: oscar
Date: 2006-09-14 13:10:02 +0000 (Thu, 14 Sep 2006)
New Revision: 3969
Modified:
plog/branches/lifetype-1.1.1/class/template/smarty/plugins/function.pager.php
Log:
Some improvements to the pager code, that now offers 3 more parameters: "beginning", "middle" and "end". These
parameters control how many pages to show in the beginning of the pager, how many pages to show in the middle block and how many pages to show on the right block. Default values are 3, 5 and 3.
Modified: plog/branches/lifetype-1.1.1/class/template/smarty/plugins/function.pager.php
===================================================================
--- plog/branches/lifetype-1.1.1/class/template/smarty/plugins/function.pager.php 2006-09-14 07:04:16 UTC (rev 3968)
+++ plog/branches/lifetype-1.1.1/class/template/smarty/plugins/function.pager.php 2006-09-14 13:10:02 UTC (rev 3969)
@@ -67,13 +67,20 @@
$prevText = "«".$locale->tr( "previous_post" );
}
+ // number of pages shown in the beginning
+ isset( $params["beginning"] ) ? $beginning = $params["beginning"] : $beginning = 3;
+ // number of pages shown in the middle
+ isset( $params["middle"] ) ? $middle = $params["middle"] : $middle = 5;
+ // Number of pages shown in the end
+ isset( $params["end"] ) ? $end = $params["end"] : $end = 3;
+
$base_url = $pager->getBaseUrl();
$total_pages = $pager->getTotalPages();
$per_page = $pager->getRegsForPage();
$start_item = 1;
$add_prevnext_text = true;
- $on_page = $pager->getCurrentPage();
+ $on_page = $pager->getCurrentPage();
$page_string = '';
@@ -81,9 +88,9 @@
if ( $total_pages == 1 )
return '';
- if ( $total_pages > 10 )
+ if ( $total_pages > ($beginning + 1 + $middle + 1 + $middle + 1 + $end ))
{
- $init_page_max = ( $total_pages > 3 ) ? 3 : $total_pages;
+ $init_page_max = ( $total_pages > $beginning ) ? $beginning : $total_pages;
for($i = 1; $i < $init_page_max + 1; $i++) {
$page_string .= ( $i == $on_page ) ? "<span class=\"pagerCurrent\">$i</span>" : "<a class=\"pagerLink\" href=\"{$base_url}{$i}\">$i</a>";
@@ -92,33 +99,32 @@
}
}
- if ( $total_pages > 3 ) {
- if ( $on_page > 1 && $on_page < $total_pages ) {
- $page_string .= ( $on_page > 5 ) ? ' ... ' : $separator;
+ if ( $on_page > 1 && $on_page < $total_pages ) {
+ $page_string .= ( $on_page > ($beginning + $middle + 1) ) ? ' ... ' : $separator;
- $init_page_min = ( $on_page > 4 ) ? $on_page : 5;
- $init_page_max = ( $on_page < $total_pages - 4 ) ? $on_page : $total_pages - 4;
+ $init_page_min = ( $on_page > ($beginning + $middle) ) ? $on_page : ($beginning + $middle + 1 );
+ $init_page_max = ( $on_page < $total_pages - ($end + 1) ) ? $on_page : $total_pages - ($end + $middle);
- for($i = $init_page_min - 1; $i < $init_page_max + 2; $i++) {
- $page_string .= ( $i == $on_page ) ? "<span class=\"pagerCurrent\">$i</span>" : "<a class=\"pagerLink\" href=\"{$base_url}{$i}\">$i</a>";
- if ( $i < $init_page_max + 1 ) {
- $page_string .= $separator;
- }
- }
- $page_string .= ( $on_page < $total_pages - 4 ) ? ' ... ' : $separator;
- }
- else {
- $page_string .= ' ... ';
- }
-
- for($i = $total_pages - 2; $i < $total_pages + 1; $i++) {
+ for($i = $init_page_min - $middle; $i < $init_page_max + ($middle + 1); $i++) {
$page_string .= ( $i == $on_page ) ? "<span class=\"pagerCurrent\">$i</span>" : "<a class=\"pagerLink\" href=\"{$base_url}{$i}\">$i</a>";
- if( $i < $total_pages ) {
+ if ( $i < $init_page_max + 1 ) {
$page_string .= $separator;
}
}
+
+ $page_string .= ( $on_page < $total_pages - ($end + $middle) ) ? ' ... ' : $separator;
}
+ else {
+ $page_string .= ' ... ';
+ }
+
+ for($i = $total_pages - ($end - 1); $i < $total_pages + 1; $i++) {
+ $page_string .= ( $i == $on_page ) ? "<span class=\"pagerCurrent\">$i</span>" : "<a class=\"pagerLink\" href=\"{$base_url}{$i}\">$i</a>";
+ if( $i < $total_pages ) {
+ $page_string .= $separator;
+ }
+ }
}
else {
for($i = 1; $i < $total_pages + 1; $i++) {
More information about the pLog-svn
mailing list