web-dev-qa-db-ja.com

ページネーションの混乱-ページネーションはstartを使用し、PopulateStateはlimitstartを使用しますか?

少し混乱しています。

フロントエンドのページネーションによって作成されたリンクを見ると、個々のページ番号リンクと開始リンクと終了リンクにstartというクエリパラメータが含まれています。

ただし、メソッドpopulateStateベースJModelListクラスはlimitstart if _$this->context_には_non null value_があります。

JModelListの基本コンストラクターは_$this->context_を_<component_name>.<model_name>_と等しくなるように設定するため、デフォルトの場合のように見えます_$this->context_nullではないため、通常、populateState_$_GET['limitstart']_から値を割り当てます- getUserStateFromRequest()省略コードが示すように:

_$value = $app->getUserStateFromRequest($this->context . '.limitstart', 'limitstart', 0);
$limitstart = ($limit != 0 ? (floor($value / $limit) * $limit) : 0);
$this->setState('list.start', $limitstart); 
_

誰かがなぜこのように行われるのか、そして行を保持する変数に同意するためにpopulateStateおよびpaginationを取得するために私がしなければならないことを誰かが説明できたら、私は本当に感謝しますページを開始する必要があること。

TIA。

7
Nick Weavers

Joomlaがプロセスの開始からページレンダリングの終了までのコードを使用するため、いくつかのデフォルトコードは混乱を招きます。要件に従って、ページ分割には2つの状態変数を設定する必要があるため、モデルのオーバーライドされたPopulateState()メソッドで設定する必要があります(source-com_weblinks)-

// List state information
$limit = $app->getUserStateFromRequest('global.list.limit', 'limit', $app->getCfg('list_limit'), 'uint');
$this->setState('list.limit', $limit);

$limitstart = JRequest::getUInt('limitstart', 0);
$this->setState('list.start', $limitstart);

さらに、jmodellist親クラスのgetPagination()メソッドを見ると、ページングを表示するために状態変数からどのように計算されるかがわかります。

3
dev-m