2 /////////////////////////////////////////////////
3 // PukiWiki - Yet another WikiWikiWeb clone.
5 // $Id: vote.inc.php,v 1.13 2003/05/14 10:13:31 arino Exp $
8 function plugin_vote_init()
13 '_vote_plugin_choice' => 'ÁªÂò»è',
14 '_vote_plugin_votes' => 'Åêɼ',
20 '_vote_plugin_choice' => 'Selection',
21 '_vote_plugin_votes' => 'Vote',
24 set_plugin_messages($messages);
27 function plugin_vote_action()
29 global $post,$vars,$script,$cols,$rows;
30 global $_title_collided,$_msg_collided,$_title_updated;
31 global $_vote_plugin_choice, $_vote_plugin_votes;
33 $postdata_old = get_source($post['refer']);
35 $title = $body = $postdata = '';
37 foreach($postdata_old as $line)
39 if (!preg_match("/^#vote\((.*)\)\s*$/",$line,$arg))
45 if ($vote_no++ != $post['vote_no'])
50 $args = explode(',',$arg[1]);
52 foreach($args as $arg)
55 if (preg_match("/^(.+)\[(\d+)\]$/",$arg,$match))
60 $e_arg = encode($arg);
61 if (!empty($post["vote_$e_arg"]) and $post["vote_$e_arg"] == $_vote_plugin_votes)
66 $votes[] = $arg.'['.$cnt.']';
69 $vote_str = '#vote('.@join(',',$votes).")\n";
71 $postdata_input = $vote_str;
72 $postdata .= $vote_str;
75 if (md5(@join('',get_source($post['refer']))) != $post['digest'])
77 $title = $_title_collided;
79 $s_refer = htmlspecialchars($post['refer']);
80 $s_digest = htmlspecialchars($post['digest']);
81 $s_postdata_input = htmlspecialchars($postdata_input);
84 <form action="$script?cmd=preview" method="post">
86 <input type="hidden" name="refer" value="$s_refer" />
87 <input type="hidden" name="digest" value="$s_digest" />
88 <textarea name="msg" rows="$rows" cols="$cols" id="textarea">$s_postdata_input</textarea><br />
96 page_write($post['refer'],$postdata);
98 $title = $_title_updated;
101 $retvars['msg'] = $title;
102 $retvars['body'] = $body;
104 $post['page'] = $post['refer'];
105 $vars['page'] = $post['refer'];
109 function plugin_vote_convert()
111 global $script,$vars,$digest;
112 global $_vote_plugin_choice, $_vote_plugin_votes;
113 static $numbers = array();
115 if (!array_key_exists($vars['page'],$numbers))
117 $numbers[$vars['page']] = 0;
119 $vote_no = $numbers[$vars['page']]++;
121 if (!func_num_args())
126 $args = func_get_args();
127 $s_page = htmlspecialchars($vars['page']);
128 $s_digest = htmlspecialchars($digest);
131 <form action="$script" method="post">
132 <table cellspacing="0" cellpadding="2" class="style_table" summary="vote">
134 <td align="left" class="vote_label" style="padding-left:1em;padding-right:1em"><strong>$_vote_plugin_choice</strong>
135 <input type="hidden" name="plugin" value="vote" />
136 <input type="hidden" name="refer" value="$s_page" />
137 <input type="hidden" name="vote_no" value="$vote_no" />
138 <input type="hidden" name="digest" value="$s_digest" />
140 <td align="center" class="vote_label"><strong>$_vote_plugin_votes</strong></td>
146 foreach($args as $arg)
150 if (preg_match("/^(.+)\[(\d+)\]$/",$arg,$match))
155 $e_arg = encode($arg);
157 $link = make_link($arg);
159 $cls = ($tdcnt++ % 2) ? 'vote_td1' : 'vote_td2';
163 <td align="left" class="$cls" style="padding-left:1em;padding-right:1em;">$link</td>
164 <td align="right" class="$cls">$cnt
165 <input type="submit" name="vote_$e_arg" value="$_vote_plugin_votes" class="submit" />