特定のキーワードを含んでいるページ数を数えてくれるプラグイン†
バージョン | 1.4.7 |
投稿者 | ラム |
状態 | 完了 |
投稿日 | |
メッセージ†
ページ数をカウントしてくれるプラグインはありませんか?
単語検索をすると右下に何ページ見つかったか教えてくれますが、この数字をトップページに表示したいのです。
もっと具体的に書きますと。
自分の作ったWikiではお店の情報をユーザーがTrackerで登録してページを追加しています。
なので、登録された件数分ページがあることになるのですが、このページ数を表示したいということです。
Trackerの設定ページの:config/plugin/tracker/設定/pageでキーワードをコメントアウトして置いておけば、このキーワードで検索すれば、ページ数が出せると思うのですが。
例えばこのようなソースのページがたくさんあって
**ピットン [#q00264bd]
|営業時間|&areaedit(){11:00~24:00};|電話|&areaedit(){888-888-888};|住所> |&areaedit(){栃木県宇都宮};|
|更新日時|>|>|>|>|&lastmod;|
//店舗
このように最後の行に//店舗と書いておけば、ここにヒットする件数が登録店舗数になると思います。
ただ、他にも//店舗と書いてあると、そこもカウントしてしまうので、そのページは除外できるようにしなければいけません。
特に、Trackerでこのページを生成していると、:config/plugin/tracker/設定/pageがこのソースのテンプレになっているので、ここにも//店舗と書いてあるわけですから、:config/plugin/tracker/設定/pageもヒットしてしまいます。
pukiwiki.ini.phpのこの設定を変えたら:config/plugin/tracker/設定/pageはヒットしなく出来ました。
// Search ignored pages
-$search_non_list = 1;
+$search_non_list = 0;
コメント†
- 伺った範囲では、ニーズは「お店の登録件数を知りたい」という事のようですね。お店の情報とは関係ないページも多少あるでしょうから、全体のページ数というのでは、ニーズには微妙にマッチしていないと思われます。 -- henoheno
- 全ての「お店の情報」に特別なページへのリンクを埋め込んでおいて、そのページに対する逆リンクの中から、特定のパターンのページだけ抽出してその行数を数えるのなら、まだ素早く終わるのかもしれないな・・・ -- henoheno
- おっしゃるとおりです。 他のページもあるのでそれは除外しないといけませんね。 -- ラム
- とくに上の:config/plugin/tracker/設定/pageには埋め込むキーワードも同じものを用意することになるので、一緒にカウントされてしまいます。 -- ラム
- trackerで作ったページの名前は特定のパターンがありますから、同じ条件で除外できるような気がします -- henoheno
- 自作プラグイン/linecounter.inc.phpを作ってみました。使ってみてください。 -- niki
- ありがとうございます。 さっそく使ってみました。 正規表現でヒットするページ数は正確にカウントされているようですね。 ですが、やはり上で書いたとおり:config/plugin/tracker/設定/pageもヒットしてしまいます。 -- ラム
- そこで、勝手に最後の行を return $counter - 1; として1ページ分減らしました。 -- ラム
- オプションで減らしたり増やしたりしたい数字を引数で渡せるといいかもしれません。 自分C言語少しはできますけど、phpはわかりません。 C言語も少しなので。 -- ラム
- でも、カウントしたい正確な数字が出せているので、さっそくもうトップページに貼り付けてきました。 -- ラム
- ご利用ありがとうございます。 -- niki
- 微調整がなくなるようにpukiwiki.ini.phpの設定で検索ページを除外できるようにしてみました。よければ使ってください。 -- niki