TITLE:コメント件数集計プラグイン
*total_comment.inc.php [#we8d4dcc]
#table_edit2(,table_mod=open){{
|SIZE(12):RIGHT:100|LEFT:360|c
|~目的|指定ページのコメント件数を集計します。|
|~対応バージョン|1.4.7plus-i18nで確認|
|~作成者|taru|
|~公開日|&new{2006-12-21 (木) 22:21:12};(公開)|
|~ライセンス|GPL|
}}
アンケート集計や投票に利用できるのではと考え作ってみました。名前付けは相変わらず適当ですorz。&br;
:例えば|
vote系のプラグインだと人気投票等を実施しても同一者による連続投票が頻繁に発生し、正確性が無いと中止するケースもあるようです。&br;
このプラグインなら投稿してもらったコメントを集計するタイプなので、管理者ならコメントのログから重複投稿が無いかチェックしやすいと思います。
:しかし|
コメントの記入はvoteに比べると手軽さが無いため、なかなか投稿してもらえないかもしれません。&br;
%%また、このプラグインは先頭に - がある行をカウントしているだけなので、編集制限をかけていないページに#commentを設置すると、投稿者が再編集でリスト構造を使う場合に、誤カウントをしてしまいます。%%Ver0.3から&new{};をカウントする方法に変更して対処。Note/diary/2007-01-23
%%また、このプラグインは先頭に - がある行をカウントしているだけなので、編集制限をかけていないページに#commentを設置すると、投稿者が再編集でリスト構造を使う場合に、誤カウントをしてしまいます。%%&color(blue,fed){Ver0.3から&new{};をカウントする方法に変更して対処。};Note/diary/2007-01-23
#contentsx
*仕様 [#f21e0708]
-ページを指定することでリスト構造書式の(-)タイプをカウントします。(先頭に - がある行を数えます)
-指定するページはあらかじめ存在するページか、新規作成で作ってください。(convert_html()にリンク書式を通しているだけなので?マークをクリックしても良い。)~
-対象ページには手動で#comment書いてください。
-基本はブロックプラグインの利用を想定して作っています。但し、数値だけの利用もあるかもしれないということでインラインとしても使えます。
:インラインプラグイン書式|
&total_comment(ページ名,見出しフィルタ用の正規表現);
--見出しフィルタは省略可能です。
**オプション内区切 [#pee1af86]
#table_edit2(){{{
|区切|意味|h
|,|基本オプション区切り|
|>|サブオプション区切り|
}}}
**オプション機能 [#r661ad75]
#table_edit2(form=text|text|textarea,,table_mod=open){{{
|機能|書式|説明|h
|ヘッダ設定|head>項目名1|項目名2|項目と項目の間に必ず(|)を置いてください。&br;これはテーブル書式に使われます。|
|フッタの追加とコメント件数の合計|foot>添え字|添え字の所に記入した文字が合計数字の左セルに入ります。|
|解説文と指定ページのコメント件数|解説文>ページ名|解説文にはページのリンクを張ります。&br;指定したページの - が先頭に付いた行数を数えます。|
|並べ替え|sort1>a>r&br;(sort列番号>昇順降順>並び替えタイプ)|&color(,efeddd){sort: 番号0は左、番号1は右};&br;&color(,eeedfd){a: SORT_ASC (昇順)、d: SORT_DESC (降順)};&br;&color(,eeedad){r: SORT_REGULAR-普通に、 n: SORT_NUMERIC-数値的に、 s: SORT_STRING-文字列として};&br;|
|指定ページの下階層ページを集計|stratum>ページ名>ページフィルタ>見出しフィルタ|''stratum:''の後ろに1を付けるとページ名の最下層名だけを表示します。&br;''ページ名:''ページフィルタとの違いは「ページ名の先頭から記述する必要がある。/文字で指定できる。[]の又は表現が使えない」事です。&br;''ページフィルタ:''正規表現で表示するページにフィルタを行います。&br;''見出しフィルタ:''見出しに対する正規表現で集計する - 付き行の範囲を指定します。|
}}}
*サンプル [#sbdd603a]
-記入例1
:ブロック|
--質問内容>ページ名
#total_comment(クリスマスは何してる?>diary/2006-12-19/Christmas)
#total_comment(クリスマスは何してる?>diary/2006-12-19/Christmas)
:インライン|
--ページ名
&total_comment(diary/2006-12-19/Christmas);
&total_comment(diary/2006-12-19/Christmas);
-記入例2
#region(記入例2)
#total_comment(head>質問|回答件数,foot>とーたる件数,クリスマスは何してる?>diary/2006-12-19/Christmas,正月は何してる?>diary/2006-12-19/NewYear)
#total_comment(head>質問|回答件数,foot>とーたる件数,クリスマスは何してる?>diary/2006-12-19/Christmas,正月は何してる?>diary/2006-12-19/NewYear)
#endregion
-記入例3
#region(記入例3)
#total_comment(head>diary|コメント件数,foot>とーたる件数,stratum1>Note/diary/,sort1>d>r)
--stratumと置く事で階層ページを一括指定できます。
--stratumの後ろに1と置く事でページ名の最後だけを表示します。
--コメントは行の先頭に(-)があれば一件と数えます。
#total_comment(head>diary|コメント件数,foot>とーたる件数,stratum1>Note/diary/,sort1>d>r)
#endregion
*ダウンロード [#jcc31fce]
#table_edit2(form=text|textarea|text|textarea,table_mod=open){{
|SIZE(12):|SIZE(12):|SIZE(12):|SIZE(12):|c
|~ファイル|~Ver|~日付|~コメント|h
|&ref(total_comment.inc.php.0.3);|0.3|'07/01/24|&new{};を数える方法に変更しました。&br;PukiWiki1.4.7 utf8にて動作確認できました。&br;Note/diary/2007-01-23|
|&ref(total_comment.inc.php.0.2+);|0.2+|'06/12/22|[[union_table.inc.php>PukiWiki/make/union_table.inc.php]]からコピペした関数の名前を変えていなかったため、関数の競合が発生してしまう状態でした。[[union_table.inc.php>PukiWiki/make/union_table.inc.php]]はまだ試作品の状態ですが、コピー元を変えるのは嫌なので、こちらの内部関数名を変更しました。|
|&ref(total_comment.inc.php.0.2);|0.2|'06/12/21|①head,foot&br;②下階層ページ一括集計&br;③並び替え機能&br;④ページと見出しのフィルタ&br;&br;|
}}
*おまけ [#u46f2c34]
PukiWiki1.4.xで使う場合(Ver.0.3以降は下記修正の必要はありません)
-30行目付近
#code(diff){{{
// $page_list = auth::get_existpages(); //PukiWiki Plus! i18n
$page_list = get_existpages(); //PukiWiki
}}}
この設定を行った場合、読み取り認証制限を行っているページも取り込まれます。
*コメント [#j277c7bc]
- オプションの説明が幾つか間違っていましたので修正しました。orz -- [[taru]] &new{2006-12-31 (日) 11:54:03};
#comment