############################################################ # #
簡易的な投票フォームと途中経過を表示します。
#
# {{vote 投票名,項目1,項目2,}}
#
# # 例えば以下のように使用します。 # 第一引数にはその投票を示すわかりやすい名前をつけてください。 # 第二引数以降が実際に表示される選択項目になります。 #
#
# {{vote FSWikiの感想,よい,普通,ダメ}}
#
#
############################################################
package plugin::vote::Vote;
use strict;
#===========================================================
# コンストラクタ
#===========================================================
sub new {
my $class = shift;
my $self = {};
return bless $self,$class;
}
#===========================================================
# 投票フォーム
#===========================================================
sub paragraph {
my $self = shift;
my $wiki = shift;
my $votename = shift;
my @itemlist = @_;
my $cgi = $wiki->get_CGI;
my $page = $cgi->param("page");
# 引数のエラーチェック
if($votename eq ""){
return &Util::paragraph_error("投票名が指定されていません。","Wiki");
}
if($#itemlist == -1){
return &Util::paragraph_error("項目名が指定されていません。","Wiki");
}
# 読み込む
my $filename = &Util::make_filename($wiki->config('log_dir'),
&Util::url_encode($votename),"vote");
my $hash = &Util::load_config_hash(undef,$filename);
# 表示用テキストを組み立てる
my $buf = ",項目,得票数\n";
foreach my $item (@itemlist) {
my $count = $hash->{$item};
unless(defined($count)){
$count=0;
}
$buf .= ",$item,$count票 - [投票|".$wiki->config('script_name').
"?page=".&Util::url_encode($page).
"&vote=".&Util::url_encode($votename).
"&item=".&Util::url_encode($item).
"&action=VOTE]\n";
}
return $buf;
}
1;