以下では、PHPCMS V9 でカスタマイズされたページネーション関数の二次開発の方法を共有します。
方法は次のとおりです:
まずファイル phpcmslibsfunctionsglobal.func.php を開き、ページング関数を見つけてコピーし、デフォルトのページング関数の下に貼り付け、名前を変更します。たとえば、wz_pages という名前を付けて保存します。
phpcms/libs/classes/template_cache.class.php を開き、行 207 を見つけます:
$str .= '$pages = pages($'.$op.'_total, $ page , $pagesize, $urlrule);';
次の行の下に追加します:
$str .= '$wz_pages = wz_pages($'.$op.'_total, $page, $pagesize, $urlrule) ;';
保存。最後に、カスタム ページング関数を使用したい場合は、テンプレート内で直接 {$wz_pages} を使用してください。将来スタイルを変更したい場合は、ファイル
phpcmslibsfunctionsglobal.func.php 内の wz_pages 関数を変更するだけです。背景に影響を与えません。
フォローアップの最適化:
使用中に、SQL ページングが正常に使用できないことが判明したため、次のコードを追加する必要があります:
phpcms/libs/classes/template_cache.class.php を開き、178 行目を見つけます。
$str .= '$r = $get_db->sql_query("'.$sql.'");$s = $get_db->fetch_next();$pages=pages($s[\'count\'], $page, $pagesize, $urlrule);';
In 彼は以下を追加しました:
$str .= '$r = $get_db->sql_query("'.$sql.'");$s = $get_db->fetch_next();$wz_pages=wz_pages($s[\'count\'], $page, $pagesize, $urlrule);';
このように、SQL ページングも正常です。
もう 1 つのフォローアップの最適化:
友人は、上記の方法はメンバー センターのコレクション リストのページネーションには使用できないと言いました。
コレクション リストのページング機能は他のファイルに直接設定されているため、テンプレート cache ファイルを変更することはできません。変更方法は以下に示されています。
以下の具体的な変更を参照してください:
phpcmslibsclassesmodel.class。 php line 61
$this->pages = pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
上記の行を次のように変更します:
$this->pages = wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
(テンプレートの {$pages} を {$wz_pages} に変更する必要はありません)
上記は最初の方法です。
ただし、この場合、背景も影響を受ける可能性があります。このように変更することもできるようです。行 61 は変更しないでください。 61 行目の直下に追加します:
$this->wz_pages= wz_pages($this->number, $page, $pagesize, $urlrule, $array, $setpages);
次に、phpcmsmodulesmemberindex.php の 718 行目に移動し、次の行
$pages = $this->favorite_db->pages;
を次のように変更します。 テンプレート内の
$wz_pages = $this->favorite_db->wz_pages;
{$pages} は { に変更する必要があります。 $wz_pages}、これは例としてコレクション リストを取り上げており、他のものも同様です。
以上がPHPCMSにおけるカスタムページング機能の二次開発方法例を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。