summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--IkiWiki/Plugin/poll.pm27
-rw-r--r--debian/changelog3
-rw-r--r--doc/bugs/poll_plugin_uses_GET.mdwn5
3 files changed, 21 insertions, 14 deletions
diff --git a/IkiWiki/Plugin/poll.pm b/IkiWiki/Plugin/poll.pm
index 320d2fa77..56034b60a 100644
--- a/IkiWiki/Plugin/poll.pm
+++ b/IkiWiki/Plugin/poll.pm
@@ -4,7 +4,6 @@ package IkiWiki::Plugin::poll;
use warnings;
use strict;
use IkiWiki;
-use URI;
sub import { #{{{
hook(type => "preprocess", id => "poll", call => \&preprocess);
@@ -45,24 +44,28 @@ sub preprocess (@) { #{{{
my $ret="";
foreach my $choice (@choices) {
+ if ($open && exists $config{cgiurl}) {
+ $ret.="<form action=\"$config{cgiurl}\">\n";
+ }
my $percent=$total > 0 ? int($choices{$choice} / $total * 100) : 0;
+ $ret.="<p>\n";
if ($showpercent) {
- $ret.="$choice ($percent%) ";
+ $ret.="$choice ($percent%)\n";
}
else {
- $ret.="$choice ($choices{$choice}) ";
+ $ret.="$choice ($choices{$choice})\n";
+ }
+ if ($open && exists $config{cgiurl}) {
+ $ret.="<input type=\"hidden\" name=\"do\" value=\"poll\" />\n";
+ $ret.="<input type=\"hidden\" name=\"num\" value=\"$pagenum{$params{page}}\" />\n";
+ $ret.="<input type=\"hidden\" name=\"page\" value=\"$params{page}\" />\n";
+ $ret.="<input type=\"hidden\" name=\"choice\" value=\"$choice\" />\n";
+ $ret.="<input type=\"submit\" value=\"vote\" />\n";
}
+ $ret.="</p>\n<hr class=poll align=left width=\"$percent%\"/>\n";
if ($open && exists $config{cgiurl}) {
- my $url=URI->new($config{cgiurl});
- $url->query_form(
- "do" => "poll",
- "num" => $pagenum{$params{page}},
- "page" => $params{page},
- "choice" => $choice,
- );
- $ret.="<a class=pollbutton href=\"$url\">vote</a>";
+ $ret.="</form>\n";
}
- $ret.="<br />\n<hr class=poll align=left width=\"$percent%\"/>\n";
}
if ($showtotal) {
$ret.="<span>Total votes: $total</span>\n";
diff --git a/debian/changelog b/debian/changelog
index b2cc9c725..37e37111d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,8 +1,9 @@
ikiwiki (1.36) UNRELEASED; urgency=low
* Fix various links on the hyperestradier pages.
+ * Use POST for poll to avoid some robots.
- -- Joey Hess <joeyh@debian.org> Mon, 4 Dec 2006 11:50:27 +0100
+ -- Joey Hess <joeyh@debian.org> Thu, 14 Dec 2006 14:04:25 -0500
ikiwiki (1.35) unstable; urgency=low
diff --git a/doc/bugs/poll_plugin_uses_GET.mdwn b/doc/bugs/poll_plugin_uses_GET.mdwn
index 786c72890..9adb6d870 100644
--- a/doc/bugs/poll_plugin_uses_GET.mdwn
+++ b/doc/bugs/poll_plugin_uses_GET.mdwn
@@ -1 +1,4 @@
-The [[plugins/poll]] plugin uses GET for the vote links. As a result, the [[news/openid]] poll has a number of votes from Google. :) \ No newline at end of file
+The [[plugins/poll]] plugin uses GET for the vote links. As a result, the
+[[news/openid]] poll has a number of votes from Google. :)
+
+[[bugs/done]] -- [[Joey]]