diff options
author | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-12-14 19:04:42 +0000 |
---|---|---|
committer | joey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071> | 2006-12-14 19:04:42 +0000 |
commit | c269d5c789471c4dfc881943271e72ba77f3caf3 (patch) | |
tree | 9beca623a56bd40dd53a3b50be43ab343e4a9a72 | |
parent | 172596b998a205b6f44b5f962549288d65cdea9a (diff) |
* Use POST for poll to avoid some robots.
-rw-r--r-- | IkiWiki/Plugin/poll.pm | 27 | ||||
-rw-r--r-- | debian/changelog | 3 | ||||
-rw-r--r-- | doc/bugs/poll_plugin_uses_GET.mdwn | 5 |
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]] |