少し混乱しています。
フロントエンドのページネーションによって作成されたリンクを見ると、個々のページ番号リンクと開始リンクと終了リンクに含まれている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とページネーションを取得するために何をしなければならないかを誰かが説明できたら、本当にありがたいです。
TIA。
だから私はこれがjmodellistから拡張されたモデルクラスのpopulateState()メソッドをオーバーライドすることで基本的に何をするかを返信したように、そうでなければ親クラスコードで混乱するでしょう。
—
dev-m
ソリューションを提供してくれた@professionalに感謝します。startとlimitstartの間の変更はSEFと関係があると思いますが、スイッチがまだどこにあるのかわかりません。回答として返信を投稿していただければ、承諾します。
—
Nick Weavers、2014年
$pagination = $this->get('Pagination');
、ビューファイルに、必要な状態は、モデルのpopulateState方法でvarsの、このように理解しやすいです-$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);