ホームページ >バックエンド開発 >PHPチュートリアル >PHPCMS V9におけるカスタムページング機能の二次開発方法
Web サイトを構築する場合、テンプレートの要件に従ってページング スタイルを制御する必要がある場合があります。このとき、多くの人がグローバル ファイル phpcmslibsfunctionsglobal.func.php の pages() 関数を変更するため、問題が発生します。ページング機能はバックグラウンドにも影響します。つまり、このページング機能はサイト全体で共有されます。解決策は以下のとおりです: (ファイルを変更する必要があります。変更する前に必ずバックアップしてください)
ファイル 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);';
Save。最後に、カスタム ページング関数を使用したい場合は、テンプレート内で直接 {$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);';
その下に追加します:
$str .= '$r = $get_db->sql_query("'.$sql.'");$s = $get_db->fetch_next();$wz_pages=wz_pages($s[\'count\'], $page, $pagesize, $urlrule);';
このように、SQL ページングも正常です。
もう 1 つのフォローアップの最適化:
友人は、上記の方法はメンバー センターのコレクション リストのページネーションには使用できないと言いました。
コレクション リストのページング機能は他のファイルに直接設定されているため、テンプレート キャッシュ ファイルを変更することは不可能です。 変更方法は以下に提供されています:
具体的な変更は以下を参照してください:
phpcmslibsclassesmodel.class.php 行 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;
を次のように変更します。テンプレートページ}これはコレクション リストを例として挙げており、他のリストも同様です。
関連記事:
PHPCMS V9のタイトルにSEO設定を行う方法
PHPCMS V9にセカンダリナビゲーションを追加するアイデアを詳しく解説