欲しいプラグイン/360
の編集
Top
/
欲しいプラグイン
/
360
[
トップ
] [
編集
|
差分
|
履歴
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
Wikiを試したい方へ:
「この」Wikiは、
PukiWiki
のための公式Wikiです。
テスト書き込みなどは
お試しサイト
https://pukiwiki.osdn.jp/_trial/
をご利用ください
**指定した階層のページ数をカウントするプラグイン [#had96af4] |RIGHT:70|LEFT:410|c |~バージョン|1.4.7| |~投稿者|[[あき]]| |~状態|完了| |~投稿日|&new{2009-01-27 (火) 12:47:34};| ***メッセージ [#zf8c3541] ある階層のページ数をカウントし、その合計数を表示することのできるプラグインはありますでしょうか?~ 例えば以下のようなページがあって、4階層目を指定すると「6」と表示されるような感じです。~ ~ 用語/A~C/A/aa~ 用語/A~C/A/ab~ 用語/A~C/B~ 用語/A~C/C/c~ 用語/D~F/D/da~ 用語/D~F/D/de~ 用語/D~F/E~ 用語/D~F/F/fab~ ***コメント [#h15516d6] - 全ページの特定階層なのか、それともX階層目までを固定(例えば、1階層目が''用語''のページのみと)してから特定階層を数えるのかで、実行時のコストが変わりそう。少なくても、カウント1回実行で[[list プラグイン>PukiWiki/1.4/Manual/Plugin/L-N#l9a47a57]]を1回実行するぐらいの時間を消費するのは、覚悟する必要がある。((設計しだいですが、1つのページで何十回もプラグインを使うのは厳しそう)) -- &new{2009-01-27 (火) 18:03:28}; - 「X階層目までを固定」を想定しています。 -- [[あき]] &new{2009-01-29 (木) 05:06:05}; - 名前と階層が条件に合うページの数を数える程度の処理をどう実装した所でそうそう重くはなりそうにない((実際はどう造っても高負荷が回避できません。これはwiki本体に保持されたページ名一覧がなく、get関数が使われる度に保存ファイル全て(=全ページ)をスキャンしている為です。 -- &new{2011-01-14 (金) 11:21:57}; ))と思いますが・・・。というわけで作りました。 <?php function plugin_pagecount_inline() { if(func_num_args() > 2) list($prefix, $depth) = func_get_args(); else return ' pagecount usage:&pagecount(<em>prefix</em>,<em>depth</em>); '; if(!is_numeric($depth) || $depth <= 0) return ' pagecount error: Invalid <em>depth</em> value.'; $all = ($prefix == ''); $depth--; $count = 0; foreach (get_existpages() as $page) if($all || strpos($page,$prefix) === 0) if(substr_count($page,'/') == $depth) $count++; return $count; } ?> 使い方は&pagecount('''カウント対象ページ名の頭''','''カウント対象階層''');のような感じで、上の例なら「&pagecount(用語/,4);」のように書いてやれば「6」と出力されると思います。適当に作ったので問題があったらすみません。 -- &new{2009-01-31 (土) 03:23:45}; - [[欲しいプラグイン/385]] -- &new{2011-01-06 (木) 18:07:24}; //#comment
**指定した階層のページ数をカウントするプラグイン [#had96af4] |RIGHT:70|LEFT:410|c |~バージョン|1.4.7| |~投稿者|[[あき]]| |~状態|完了| |~投稿日|&new{2009-01-27 (火) 12:47:34};| ***メッセージ [#zf8c3541] ある階層のページ数をカウントし、その合計数を表示することのできるプラグインはありますでしょうか?~ 例えば以下のようなページがあって、4階層目を指定すると「6」と表示されるような感じです。~ ~ 用語/A~C/A/aa~ 用語/A~C/A/ab~ 用語/A~C/B~ 用語/A~C/C/c~ 用語/D~F/D/da~ 用語/D~F/D/de~ 用語/D~F/E~ 用語/D~F/F/fab~ ***コメント [#h15516d6] - 全ページの特定階層なのか、それともX階層目までを固定(例えば、1階層目が''用語''のページのみと)してから特定階層を数えるのかで、実行時のコストが変わりそう。少なくても、カウント1回実行で[[list プラグイン>PukiWiki/1.4/Manual/Plugin/L-N#l9a47a57]]を1回実行するぐらいの時間を消費するのは、覚悟する必要がある。((設計しだいですが、1つのページで何十回もプラグインを使うのは厳しそう)) -- &new{2009-01-27 (火) 18:03:28}; - 「X階層目までを固定」を想定しています。 -- [[あき]] &new{2009-01-29 (木) 05:06:05}; - 名前と階層が条件に合うページの数を数える程度の処理をどう実装した所でそうそう重くはなりそうにない((実際はどう造っても高負荷が回避できません。これはwiki本体に保持されたページ名一覧がなく、get関数が使われる度に保存ファイル全て(=全ページ)をスキャンしている為です。 -- &new{2011-01-14 (金) 11:21:57}; ))と思いますが・・・。というわけで作りました。 <?php function plugin_pagecount_inline() { if(func_num_args() > 2) list($prefix, $depth) = func_get_args(); else return ' pagecount usage:&pagecount(<em>prefix</em>,<em>depth</em>); '; if(!is_numeric($depth) || $depth <= 0) return ' pagecount error: Invalid <em>depth</em> value.'; $all = ($prefix == ''); $depth--; $count = 0; foreach (get_existpages() as $page) if($all || strpos($page,$prefix) === 0) if(substr_count($page,'/') == $depth) $count++; return $count; } ?> 使い方は&pagecount('''カウント対象ページ名の頭''','''カウント対象階層''');のような感じで、上の例なら「&pagecount(用語/,4);」のように書いてやれば「6」と出力されると思います。適当に作ったので問題があったらすみません。 -- &new{2009-01-31 (土) 03:23:45}; - [[欲しいプラグイン/385]] -- &new{2011-01-06 (木) 18:07:24}; //#comment
テキスト整形のルールを表示する