0
    $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

例: 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

ありがとう

4

1 に答える 1

0
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.
于 2012-10-11T12:42:12.467 に答える