随着标签越来越多,在组件后台管理的时候有点麻烦,因此需要给后台分页。所涉及的文件包括后台的view.html.php,tmpl/default.php和models/tagss.php,其中最多改动是models/tagss.php,其主要代码如下:
class TagssModelTagss extends JModel
{
var $_data;
function __construct()
{
parent::__construct();
global $mainframe, $option;
$limit = $mainframe->getUserStateFromRequest( 'global.list.limit', 'limit', $mainframe->getCfg('list_limit'), 'int' );
$limitstart = $mainframe->getUserStateFromRequest( $option.'.limitstart', 'limitstart', 0, 'int' );
$limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);
$this->setState('limit', $limit);
$this->setState('limitstart', $limitstart);
}
function _buildQuery()
{
$query = ' SELECT * FROM #__tags';
return $query;
}
function getData()
{
// Lets load the content if it doesn't already exist
if (empty($this->_data))
{
$query = $this->_buildQuery();
$this->_data = $this->_getList($query, $this->getState('limitstart'), $this->getState('limit'));
}
return $this->_data;
}
function getTotal()
{
// Lets load the content if it doesn't already exist
if (empty($this->_total))
{
$query = $this->_buildQuery();
$this->_total = $this->_getListCount($query);
}
return $this->_total;
}
function getPagination()
{
// Lets load the content if it doesn't already exist
if (empty($this->_pagination))
{
jimport('joomla.html.pagination');
$this->_pagination = new JPagination( $this->getTotal(), $this->getState('limitstart'), $this->getState('limit') );
}
return $this->_pagination;
}
}
我们可以看到多了一个构造函数,主要是取得$limit和$limitstart变量。另外主要是多了getTotal函数和getPagination,我们可以看到分页对象也在models中得到了,这跟我们以前分页对象通常在view.html.php中取得略有不同。
我们对于default.php的修改,主要是增加了:
<?php echo $this->pagination->getListFooter();?>
我们看到使用的getListFooter(),如果使用常用getPagelinks,会出现JS脚本错误而无法分页。
现在的效果如下:

Attatchments: 您还没有登录,登录后方能下载,如果您还没有注册,请点击
免费注册