totalpages.inc.php †
名称 | ページ数表示プラグイン |
---|---|
ファイル | totalpages.inc.php |
バージョン | 1.01 |
対象サーバー | PukiWiki 1.5.3 / PHP 7.4 / UTF-8 |
対象ブラウザー | Firefox, Chrome, Safari, Edge 各最新版 |
ライセンス | GPLv3 |
ウィキ内のページ数を数えて出力するPukiWiki用プラグイン。
インストール †
totalpages.inc.phpをPukiWikiのpluginディレクトリに配置してください。
使い方 †
&totalpages([pagePrefix]);
pagePrefix … この文字列から始まる名前のページだけを数える。省略すると全ページ
使用例 †
このウィキには&totalpages();本の記事があります。
このウィキには33本の記事があります。
PukiWikiに関する記事は&totalpages(PukiWiki/);本です。
PukiWikiに関する記事は28本です。
設定 †
コード内の下記の定数で動作を制御することができます。
定数名 | 値 | 既定値 | 意味 |
---|---|---|---|
PLUGIN_TOTALPAGES_PAGE_ALLOW | 文字列 | カウント対象ページ名を表す正規表現 | |
PLUGIN_TOTALPAGES_PAGE_DISALLOW | 文字列 | '^(Pukiwiki\/.*)$' | カウント除外ページ名を表す正規表現 |
PLUGIN_TOTALPAGES_NUMBERFORMAT | 0 or 1 | 1 | ページ数を3桁カンマ区切りで表示する |
処理の詳細 †
数えるのは次のすべての条件で絞り込まれたページです。特殊なページを省くなど、ご自分のウィキを厳密に数えたいかたは条件を調整してください。正規表現の知識が必要です。
- RecentChangesページを除外する
- pukiwiki.ini.php 内 $non_list で指定されたページを除外する
- PLUGIN_TOTALPAGES_PAGE_ALLOW定数が空でなければ、それが表すページのみを対象とする
- PLUGIN_TOTALPAGES_PAGE_DISALLOW定数が空でなければ、それが表すページを除外する(デフォルトでは「Pukiwiki/」から始まるページを除外)
- 引数が空でなければ、その文字列から始まるページのみを対象とする
- 閲覧不可のページを除外する
数えたページ数は専用のキャッシュファイル cache/totalpages[.*].dat に保存し、次回から処理を省略します。cache/recent.dat のタイムスタンプを参照し、ページの編集・増減を検知したら数え直します。もしプラグイン内の定数やコードを書き換えて条件を変更したら、キャッシュファイル cache/totalpages[.*].dat を削除するか適当なページを編集して強制的に数え直させてください。
謝辞 †
次のプラグインを参考にし、コードを一部流用させていただきました。
rss.inc.php : Copyright 2003-2017 PukiWiki Development Team, License: GPL v2 or (at your option) any later version
default.ini.phpへの設定 †
本プラグインの定数設定(ファイル内の下記のような行)は、PukiWikiルートディレクトリにある標準設定ファイルdefault.ini.phpにも記述することができます。本プラグインの定数設定行をdefault.ini.phpの末尾にそのままコピーしてください。default.ini.php側の設定値が優先されます。
///////////////////////////////////////////////// // ○○プラグイン設定(○○.inc.php) if (!defined('PLUGIN_○○_×××)) define('PLUGIN_○○_×××', △);
設定をdefault.ini.phpに記述することで、プラグインをアップデート(ファイル上書き)するたびに値を書き直す必要がなくなります。また、設定がdefault.ini.phpに集中することで、運用中の設定管理も楽になります。
凡例 †
プラグインの引数は下記の書式で表現しています。
- [] … 省略でき必要に応じて記述します
- | … |で区切られた項目のうち1つを記述します
- {} … 中カッコ内の引数は任意の順序で記述できます