View of /mambo/branches/4.5.3h/includes/pageNavigation.php
Parent Directory
|
Revision Log
Revision 1416 -
(download)
(annotate)
Fri Nov 23 12:01:17 2007 UTC (5 years, 5 months ago) by ocs_cms
File size: 4897 byte(s)
Fri Nov 23 12:01:17 2007 UTC (5 years, 5 months ago) by ocs_cms
File size: 4897 byte(s)
fixed header comment blocks to meet coding standards and to remove the invalid link to GNU/GPL version 2 license. Author and License references in the XML files replaced with mambo-foundation
<?php
/**
* @package Mambo
* @author Mambo Foundation Inc see README.php
* @copyright Mambo Foundation Inc.
* @license GNU/GPL Version 2, see LICENSE.php
* Mambo 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; version 2 of the License.
*/
/** ensure this file is being included by a parent file */
defined( '_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );
/**
* Page navigation support class
* @package Mambo
*/
class mosPageNav {
/** @var int The record number to start dislpaying from */
var $limitstart = null;
/** @var int Number of rows to display per page */
var $limit = null;
/** @var int Total number of rows */
var $total = null;
function mosPageNav( $total, $limitstart, $limit ) {
$this->total = intval( $total );
$this->limitstart = max( intval($limitstart), 0 );
$this->limit = max( intval($limit), 0 );
}
/**
* Returns the html limit # input box
* @param string The basic link to include in the href
* @return string
*/
function getLimitBox ( $link ) {
$limits = array();
for ($i=5; $i <= 30; $i+=5) {
$limits[] = mosHTML::makeOption( "$i" );
}
$limits[] = mosHTML::makeOption( "50" );
// build the html select list
$link = sefRelToAbs($link.'&limit=\' + this.options[selectedIndex].value + \'&limitstart='.$this->limitstart);
return mosHTML::selectList( $limits, 'limit',
'class="inputbox" size="1" onchange="document.location.href=\''.$link.'\';"',
'value', 'text', $this->limit );
}
/**
* Writes the html limit # input box
* @param string The basic link to include in the href
*/
function writeLimitBox ( $link ) {
echo mosPageNav::getLimitBox( $link );
}
/**
* Writes the html for the pages counter, eg, Results 1-10 of x
*/
function writePagesCounter() {
$txt = '';
$from_result = $this->limitstart+1;
if ($this->limitstart + $this->limit < $this->total) {
$to_result = $this->limitstart + $this->limit;
} else {
$to_result = $this->total;
}
if ($this->total > 0) {
$txt .= _PN_RESULTS." $from_result - $to_result "._PN_OF." $this->total";
}
return $txt;
}
/**
* Writes the html for the leafs counter, eg, Page 1 of x
*/
function writeLeafsCounter() {
$txt = '';
$page = $this->limitstart+1;
if ($this->total > 0) {
$txt .= _PN_PAGE." $page "._PN_OF." $this->total";
}
return $txt;
}
/**
* Writes the html links for pages, eg, previous, next, 1 2 3 ... x
* @param string The basic link to include in the href
*/
function writePagesLinks( $link ) {
// clean link - could be better filtered in rewrite
// stops XSS
require_once( $GLOBALS['mosConfig_absolute_path'] . '/includes/phpInputFilter/class.inputfilter.php');
$iFilter = new InputFilter( null, null, 1, 1 );
$link = trim( $iFilter->process( $link ) );
$link = preg_replace("/(task.*?)&/i", "", $link);
$txt = '';
$displayed_pages = 10;
$total_pages = ceil( $this->total / $this->limit );
$this_page = ceil( ($this->limitstart+1) / $this->limit );
$start_loop = (floor(($this_page-1)/$displayed_pages))*$displayed_pages+1;
if ($start_loop + $displayed_pages - 1 < $total_pages) {
$stop_loop = $start_loop + $displayed_pages - 1;
} else {
$stop_loop = $total_pages;
}
$link .= '&limit='. $this->limit;
if ($this_page > 1) {
$page = ($this_page - 2) * $this->limit;
$txt .= '<a href="'. sefRelToAbs( "$link&limitstart=0" ) .'" class="pagenav" title="first page"><< '. _PN_START .'</a> ';
$txt .= '<a href="'. sefRelToAbs( "$link&limitstart=$page" ) .'" class="pagenav" title="previous page">< '. _PN_PREVIOUS .'</a> ';
} else {
$txt .= '<span class="pagenav"><< '. _PN_START .'</span> ';
$txt .= '<span class="pagenav">< '. _PN_PREVIOUS .'</span> ';
}
for ($i=$start_loop; $i <= $stop_loop; $i++) {
$page = ($i - 1) * $this->limit;
if ($i == $this_page) {
$txt .= '<span class="pagenav">'. $i .'</span> ';
} else {
$txt .= '<a href="'. sefRelToAbs( $link .'&limitstart='. $page ) .'" class="pagenav"><strong>'. $i .'</strong></a> ';
}
}
if ($this_page < $total_pages) {
$page = $this_page * $this->limit;
$end_page = ($total_pages-1) * $this->limit;
$txt .= '<a href="'. sefRelToAbs( $link .'&limitstart='. $page ) .' " class="pagenav" title="next page">'. _PN_NEXT .' ></a> ';
$txt .= '<a href="'. sefRelToAbs( $link .'&limitstart='. $end_page ) .' " class="pagenav" title="end page">'. _PN_END .' >></a>';
} else {
$txt .= '<span class="pagenav">'. _PN_NEXT .' ></span> ';
$txt .= '<span class="pagenav">'. _PN_END .' >></span>';
}
return $txt;
}
}
?>| ViewVC Help | |
| Powered by ViewVC 1.0.0 |

