⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pagination.php

📁 Joomla!是一套获得过多个奖项的内容管理系统(Content Management System, CMS)。Joomla!采用PHP+MySQL数据库开发
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php/** * @version		$Id: pagination.php 10707 2008-08-21 09:52:47Z eddieajau $ * @package		Joomla.Framework * @subpackage	HTML * @copyright	Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved. * @license		GNU/GPL, see LICENSE.php * Joomla! is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See COPYRIGHT.php for copyright notices and details. */// Check to ensure this file is within the rest of the frameworkdefined('JPATH_BASE') or die();/** * Pagination Class.  Provides a common interface for content pagination for the * Joomla! Framework * * @package 	Joomla.Framework * @subpackage	HTML * @since		1.5 */class JPagination extends JObject{	/**	 * The record number to start dislpaying from	 *	 * @access public	 * @var int	 */	var $limitstart = null;	/**	 * Number of rows to display per page	 *	 * @access public	 * @var int	 */	var $limit = null;	/**	 * Total number of rows	 *	 * @access public	 * @var int	 */	var $total = null;	/**	 * View all flag	 *	 * @access protected	 * @var boolean	 */	var $_viewall = false;	/**	 * Constructor	 *	 * @param	int		The total number of items	 * @param	int		The offset of the item to start at	 * @param	int		The number of items to display per page	 */	function __construct($total, $limitstart, $limit)	{		// Value/Type checking		$this->total		= (int) $total;		$this->limitstart	= (int) max($limitstart, 0);		$this->limit		= (int) max($limit, 0);		if ($this->limit > $this->total) {			$this->limitstart = 0;		}		if (!$this->limit)		{			$this->limit = $total;			$this->limitstart = 0;		}		if ($this->limitstart > $this->total) {			$this->limitstart -= $this->limitstart % $this->limit;		}		// Set the total pages and current page values		if($this->limit > 0)		{			$this->set( 'pages.total', ceil($this->total / $this->limit));			$this->set( 'pages.current', ceil(($this->limitstart + 1) / $this->limit));		}		// Set the pagination iteration loop values		$displayedPages	= 10;		$this->set( 'pages.start', (floor(($this->get('pages.current') -1) / $displayedPages)) * $displayedPages +1);		if ($this->get('pages.start') + $displayedPages -1 < $this->get('pages.total')) {			$this->set( 'pages.stop', $this->get('pages.start') + $displayedPages -1);		} else {			$this->set( 'pages.stop', $this->get('pages.total'));		}		// If we are viewing all records set the view all flag to true		if ($this->limit == $total) {			$this->_viewall = true;		}	}	/**	 * Return the rationalised offset for a row with a given index.	 *	 * @access	public	 * @param	int		$index The row index	 * @return	int		Rationalised offset for a row with a given index	 * @since	1.5	 */	function getRowOffset($index)	{		return $index +1 + $this->limitstart;	}	/**	 * Return the pagination data object, only creating it if it doesn't already exist	 *	 * @access	public	 * @return	object	Pagination data object	 * @since	1.5	 */	function getData()	{		static $data;		if (!is_object($data)) {			$data = $this->_buildDataObject();		}		return $data;	}	/**	 * Create and return the pagination pages counter string, ie. Page 2 of 4	 *	 * @access	public	 * @return	string	Pagination pages counter string	 * @since	1.5	 */	function getPagesCounter()	{		// Initialize variables		$html = null;		if ($this->get('pages.total') > 1) {			$html .= JText::_('Page')." ".$this->get('pages.current')." ".JText::_('of')." ".$this->get('pages.total');		}		return $html;	}	/**	 * Create and return the pagination result set counter string, ie. Results 1-10 of 42	 *	 * @access	public	 * @return	string	Pagination result set counter string	 * @since	1.5	 */	function getResultsCounter()	{		// Initialize variables		$html = null;		$fromResult = $this->limitstart + 1;		// If the limit is reached before the end of the list		if ($this->limitstart + $this->limit < $this->total) {			$toResult = $this->limitstart + $this->limit;		} else {			$toResult = $this->total;		}		// If there are results found		if ($this->total > 0) {			$msg = JText::sprintf('Results of', $fromResult, $toResult, $this->total);			$html .= "\n".$msg;		} else {			$html .= "\n".JText::_('No records found');		}		return $html;	}	/**	 * Create and return the pagination page list string, ie. Previous, Next, 1 2 3 ... x	 *	 * @access	public	 * @return	string	Pagination page list string	 * @since	1.0	 */	function getPagesLinks()	{		global $mainframe;		$lang =& JFactory::getLanguage();		// Build the page navigation list		$data = $this->_buildDataObject();		$list = array();		$itemOverride = false;		$listOverride = false;		$chromePath = JPATH_THEMES.DS.$mainframe->getTemplate().DS.'html'.DS.'pagination.php';		if (file_exists($chromePath))		{			require_once ($chromePath);			if (function_exists('pagination_item_active') && function_exists('pagination_item_inactive')) {				$itemOverride = true;			}			if (function_exists('pagination_list_render')) {				$listOverride = true;			}		}		// Build the select list		if ($data->all->base !== null) {			$list['all']['active'] = true;			$list['all']['data'] = ($itemOverride) ? pagination_item_active($data->all) : $this->_item_active($data->all);		} else {			$list['all']['active'] = false;			$list['all']['data'] = ($itemOverride) ? pagination_item_inactive($data->all) : $this->_item_inactive($data->all);		}		if ($data->start->base !== null) {			$list['start']['active'] = true;			$list['start']['data'] = ($itemOverride) ? pagination_item_active($data->start) : $this->_item_active($data->start);		} else {			$list['start']['active'] = false;			$list['start']['data'] = ($itemOverride) ? pagination_item_inactive($data->start) : $this->_item_inactive($data->start);		}		if ($data->previous->base !== null) {			$list['previous']['active'] = true;			$list['previous']['data'] = ($itemOverride) ? pagination_item_active($data->previous) : $this->_item_active($data->previous);		} else {			$list['previous']['active'] = false;			$list['previous']['data'] = ($itemOverride) ? pagination_item_inactive($data->previous) : $this->_item_inactive($data->previous);		}		$list['pages'] = array(); //make sure it exists		foreach ($data->pages as $i => $page)		{			if ($page->base !== null) {				$list['pages'][$i]['active'] = true;				$list['pages'][$i]['data'] = ($itemOverride) ? pagination_item_active($page) : $this->_item_active($page);			} else {				$list['pages'][$i]['active'] = false;				$list['pages'][$i]['data'] = ($itemOverride) ? pagination_item_inactive($page) : $this->_item_inactive($page);			}		}		if ($data->next->base !== null) {			$list['next']['active'] = true;			$list['next']['data'] = ($itemOverride) ? pagination_item_active($data->next) : $this->_item_active($data->next);		} else {			$list['next']['active'] = false;			$list['next']['data'] = ($itemOverride) ? pagination_item_inactive($data->next) : $this->_item_inactive($data->next);		}		if ($data->end->base !== null) {			$list['end']['active'] = true;			$list['end']['data'] = ($itemOverride) ? pagination_item_active($data->end) : $this->_item_active($data->end);		} else {			$list['end']['active'] = false;			$list['end']['data'] = ($itemOverride) ? pagination_item_inactive($data->end) : $this->_item_inactive($data->end);		}		if($this->total > $this->limit){			return ($listOverride) ? pagination_list_render($list) : $this->_list_render($list);		}		else{			return '';

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -