トップ 差分 一覧 Farm ソース 検索 ヘルプ RSS ログイン

BugTrack-plugin/22

ページの作成や編集にはユーザ登録が必要です。

簡易投票プラグイン

  • 投稿者: Yoshimov
  • カテゴリ: 新規
  • 優先度: 普通
  • 状態: リリース済
  • 日時: 2003年07月07日 13時19分11秒

 内容

なかったのが不思議な感じもしますが、投票フォームを表示するプラグインを作りました。

{{vote 項目1,項目2,,}}

と記述すると、投票フォームと途中経過が表示されます。3.4.1用です。

今のところ、プラグインの記述自体を書き換えることで、票数を保存していますが、他にいい方法があれば、変更しても良いと思います。

 コメント

  • 欲しかったんですけど、作るのが面倒で・・・ - たけぞう (2003年07月09日 14時13分00秒)
  • 3.5.0に対応しました。また、テーブルをWiki形式で返すようにしました。 - Yoshimov (2003年08月26日 09時52分18秒)
  • これはディストリビューションに取り入れたいですね。 - たけぞう (2003年08月26日 10時25分15秒)
  • 正規表現のquoteが行われていないので、( )などを含む場合、問題となります(両バージョンとも)。 以下修正例です。- BJM(と) (2003年08月29日 21時52分32秒)

in VoteHandler.pm

#===========================================================
# 投票の反映
#===========================================================
sub do_action {
   my $self = shift;
   my $wiki = shift;
   my $cgi  = $wiki->get_CGI;

   my $item    = $cgi->param("item");
   my $q_item  = quotemeta($item);
   my $count   = $cgi->param("count");
   my $page    = $cgi->param("page");

   if($page ne "" && $item ne "" && $count ne ""){
my @lines = split(/\n/,$wiki->get_page($page));
my $flag = 0;
#	my $form_count = 1;
my $content = "";
foreach (@lines){
    my $line = $_;
    if($line =~ m/\{\{vote(.*)$q_item(\|([0-9]+))?(.*)\}\}/) {
#		if (!$form_count == $count) {
#		    $form_count ++;
#		    next;
#		}
	my $num = 1;
	if ($3 ne "") {
	    $num = int($3) + 1;
	}
	$line =~ s/$q_item(\|[0-9]+)?/$item\|$num/;
	$flag = 1;
    }
    $content .= $line."\n";
}
if ($flag == 1) {
    $wiki->save_page($page,$content);
}
   }	
   return $wiki->call_handler("");
}
  • choiceにも同様な問題があると思います。 - BJM(と) (2003年08月29日 21時57分22秒)
  • 3.5.1でリリースしました。 - たけぞう (2003年10月28日 12時07分46秒)
お名前: コメント:
vote-20030707.zip vote-350-20030826.zip

最終更新時間:2008年05月15日 15時31分19秒