############################################################ # #

簡易的な投票フォームと途中経過を表示します。

#
# {{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;