ホームページ >バックエンド開発 >PHPチュートリアル >PHPCMS V9におけるカスタムページング機能の二次開発方法

PHPCMS V9におけるカスタムページング機能の二次開発方法

黄舟
黄舟オリジナル
2017-03-21 15:28:012058ブラウズ

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 でのカスタム ページング機能の二次開発の内容です。さらに関連した内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

関連記事:

PHPCMS V9のタイトルにSEO設定を行う方法

PHPCMS V9にセカンダリナビゲーションを追加するアイデアを詳しく解説

phpcms v9の二次開発と使用中のさまざまな問題の解決策

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。