【问题标题】:Joomla Pagination ErrorJoomla 分页错误
【发布时间】:2012-10-02 00:50:54
【问题描述】:
    $limit   = $this->_app->getUserStateFromRequest('global.list.limit', 'limit', $this->_app->getCfg('list_limit'), 'int');
    $limitstart = $this->_app->getUserStateFromRequest(OPTIOIN_NAME.'.limitstart', 'limitstart', 0, 'int');
    $limitstart = ($limit != 0 ? (floor($limitstart / $limit) * $limit) : 0); // In case limit has been changed

EG : PAGES 1 -> 将记录数设置为 10 , 当我转到 PAGES 2 -> 分页自动设置为 10。我想为不同的页面设置不同的分页设置。

它的作用是保存一个全局变量。所以即使我移动到另一个页面,这些分页设置也会被保存和应用。如果我将OPTIOIN_NAME.'.limitstart''global.list.limit' 更改为其他内容,它会给我Warning: Attempt to assign property of non-object in D:\wamp\www\jink\libraries\joomla\registry\registry.php on line 342。如何在不破坏代码的情况下解决此问题。

谢谢

【问题讨论】:

    标签: joomla pagination joomla2.5 joomla1.7 joomla1.6


    【解决方案1】:
    function __construct() 
    {
        $this->_app =& JFactory::getApplication();
        parent::__construct();
    
        // Get pagination request variables
        $limit = $this->_app->getUserStateFromRequest(OPTIOIN_NAME.'.bs.limit', 'limit', $this->_app->getCfg('list_limit'), 'int');
        $limitstart = $this->_app->getUserStateFromRequest(OPTIOIN_NAME.'.bs.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.'.bs.limit', $limit);
        $this->setState(OPTIOIN_NAME.'.bs.limitstart', $limitstart);
    }
    
    
    function pagination()
    {
        if($this->_pagination == NULL)
            $this->_pagination = new JPagination(20, $this->getState(OPTIOIN_NAME.'.bs.limitstart'), $this->getState(OPTIOIN_NAME.'.bs.limit'));
        return $this->_pagination;
    }
    

    在构造函数中获取值并将其设置为会话。分页函数应该在控制器中调用。

    在 getList 或您希望限制行的任何函数中

    // Set the Limits and Filters
    $limit = $this->getState(OPTIOIN_NAME.'.bs.limit');
    $limitstart = $this->getState(OPTIOIN_NAME.'.bs.limitstart');
    
    //setup the pagination
    $this->_pagination = new JPagination($total, $limitstart, $limit);     
    
    //get the data within limits
    $this->_data = $this->_getList($query, $limitstart, $limit);   
    
    //$total is the total number of rows return by the count(*) query.
    

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 2014-03-06
      • 2016-03-25
      • 2013-03-11
      • 2013-12-22
      • 2015-02-18
      • 2011-03-25
      • 2012-03-28
      • 1970-01-01
      相关资源
      最近更新 更多