2

したがって、私はJPaginationに関するこのチュートリアルに従っており、JDatabaseに関するセクションでは、 2行目に変数があります。(ページの他の場所では参照されていません。この値が宣言/初期化されている場所がわかりません)。$option"$option.limit"

$db =& JFactory::getDBO();
$lim    = $mainframe->getUserStateFromRequest("$option.limit", 'limit', 14, 'int'); //I guess getUserStateFromRequest is for session or different reasons
$lim0   = JRequest::getVar('limitstart', 0, '', 'int');
$db->setQuery('SELECT SQL_CALC_FOUND_ROWS x, y, z FROM jos_content WHERE x',$lim0, $lim);
$rL=&$db->loadAssocList();
if (empty($rL)) {$jAp->enqueueMessage($db->getErrorMsg(),'error'); return;} 
else {
////Here the beauty starts
$db->setQuery('SELECT FOUND_ROWS();');  //no reloading the query! Just asking for total without limit
jimport('joomla.html.pagination');
$pageNav = new JPagination( $db->loadResult(), $lim0, $lim );
foreach($rL as $r) {
//your display code here
}
echo $pageNav->getListFooter(  ); //Displays a nice footer

このようなページでjoomlaのドキュメントを見て、$option変数がに関連しているかどうかを確認しました。これは、表示する量を設定しているlimitBoxためです。limitbox ディスプレイボックスしかし、私はあまり運がありませんでした。

したがって、変数から情報を取得したり、 JPagination$optionの現在の選択から情報を取得したりするのはどういう意味ですか。LimitBox

私の実装へのPastebinリンク[24時間で期限切れ]

4

1 に答える 1

3

この記事はいくつかの点で古くなっています。元々はJ1.5用に書かれており、内部の仕組みについて多くの知識があることを前提としています。J2.5にはお勧めしません。

J2.5 MVCをフォローしていて、組み込みの(ほとんどの場合)部分的なユーザー状態メカニズムを使用している場合、ページ付けは今日ほとんど自動化されています。まず、J2.5では、JModelListコンテンツアイテムのリストを表示している場合、モデルを拡張する必要があります。リストを処理するための便利な機能を追加することでJModelList拡張します。JModel

これらの機能の1つはメソッドです。基本状態では、名前付きpopulateState()を使用している場合は、リストの制限を処理します。これは、基本のuserStateを管理することで実現します。また、(Joomla API JModelList)を読むことをお勧めします。<select>limit/administrator/com_contact/libraries/joomla/application/component/modellist.php

populateState()モデルが半自動でコンポーネントの基本を追跡できるようにするために使用されます。リストの制限に加えて、検索フィールドと並べ替え列とその方向も追跡します。拡張機能で他のユーザーの状態を追跡したり、設定を上書きしたりする必要がある場合はpopulateState()、モデルファイルにを作成できます。組み込みのメリットを享受できるように、事前に親に電話することを忘れないでください。例えば

protected function populateState()
{
    parent::populateState();
    $app = JFactory::getApplication('site');

    /* Do some groovy stuff here
     * like adding our own form variables to the state to use later
     */
    $srid = $this->getUserStateFromRequest($this->context.'.project.srid','srid');
    $this->setState('project.srid', $srid);

}

ユーザー状態については、この記事(ページネーションについても簡単に説明しています)「ユーザー状態変数の使用方法」で詳細を読むことができます。

于 2012-07-01T23:41:09.297 に答える