Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Joomla 乔姆拉寻呼_Joomla_Pagination_Paging - Fatal编程技术网

Joomla 乔姆拉寻呼

Joomla 乔姆拉寻呼,joomla,pagination,paging,Joomla,Pagination,Paging,我是乔姆拉的新手。我正在尝试创建一个显示数据库数据的网页(我正在使用带有Sourcerer插件的php)。数据包含具有图像的用户的配置文件。现在,我希望每页显示5个用户配置文件(使用分页)。这只是一个我想要分页的菜单(页面)。 我已经为此浏览了很多链接,但找不到确切的解决方案。 请帮帮我 谢谢在构造函数上方和类定义下方放置此代码 class ComUserModel extends JModel { var $_pagination = null; function __co

我是乔姆拉的新手。我正在尝试创建一个显示数据库数据的网页(我正在使用带有Sourcerer插件的php)。数据包含具有图像的用户的配置文件。现在,我希望每页显示5个用户配置文件(使用分页)。这只是一个我想要分页的菜单(页面)。 我已经为此浏览了很多链接,但找不到确切的解决方案。 请帮帮我


谢谢

在构造函数上方和类定义下方放置此代码

class ComUserModel extends JModel
{

    var $_pagination = null;

    function __construct() 
    {
在您使用的模型的构造函数中,让我们假设它是用户模型

function __construct() 
{
    $this->_app =& JFactory::getApplication();
    parent::__construct();

    // Get pagination request variables
    $limit = $this->_app->getUserStateFromRequest(OPTIOIN_NAME.'.user.limit', 'limit', $this->_app->getCfg('list_limit'), 'int');
    $limitstart = $this->_app->getUserStateFromRequest(OPTIOIN_NAME.'.user.limitstart', 'limitstart', 0, 'int');

    // In case limit has been changed, adjust it
    $limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0);

    // Set States
    $this->setState(OPTIOIN_NAME.'.user.limit', $limit);
    $this->setState(OPTIOIN_NAME.'.user.limitstart', $limitstart);
}
将下面的函数添加到模型中

function pagination()
{
    if($this->_pagination == NULL)
        $this->_pagination = new JPagination(20, $this->getState(OPTIOIN_NAME.'.user.limitstart'), $this->getState(OPTIOIN_NAME.'.user.limit'));
    return $this->_pagination;
}
当您检索数据时

function getUsers()
{
    // Set the Limits and Filters
    $limit = $this->getState(OPTIOIN_NAME.'.user.limit');
    $limitstart = $this->getState(OPTIOIN_NAME.'.user.limitstart');

    //get db             
    $db = JFactory::getDBO();
    $count_query = 'count(*)';
    $select_query = '*';
    $from_query = $db->nameQuote(TABLE_PREFIX.'user_table');               


    //build the query
    $query = $db->getQuery(true);
    $query->select($select_query);
    $query->from($from_query); 
    $query->order($db->nameQuote('id').' desc');       
    $db->setQuery($query);               


    //build count query
    $cquery = $db->getQuery(true);
    $cquery->select($count_query);
    $cquery->from($from_query); 
    $cquery->order($db->nameQuote('id').' desc');       
    $db->setQuery($cquery);               
    $total = $db->loadResult();


    if ($db->getErrorNum())
    {
        $this->_app->enqueueMessage($db->stderr(), 'error');
        return false;
    }        
    //setup the pagination
    $this->_pagination  = new JPagination($total, $limitstart, $limit);     

    //get the data within limits
    $data       = $this->_getList($query, $limitstart, $limit);        

    if ($db->getErrorNum())
    {
        $this->_app->enqueueMessage($db->stderr(), 'error');
        return false;
    }

    return $data; 
}
在控制器中

function getalluser()
{   

    $model      = $this->getModel('user');        
    $data       = $model->getUsers();  
    $pagination = $model->pagination();

    $view = $this->getView('userlist', 'html');
    $view->assignRef('data',$data);
    $view->assignRef('pagination', $pagination);        
    $view->display();
}
在视图中,将代码放在需要分页的位置

<?php echo $this->pagination->getListFooter(); ?>


如果您有任何问题,请告诉我

整个核心都使用分页,您是否尝试过从那里查看示例?例如,查看任何类别列表布局及其如何使用核心分页。