* Use POST for poll to avoid some robots.

master
joey 2006-12-14 19:04:42 +00:00
parent 172596b998
commit c269d5c789
3 changed files with 21 additions and 14 deletions

View File

@ -4,7 +4,6 @@ package IkiWiki::Plugin::poll;
use warnings; use warnings;
use strict; use strict;
use IkiWiki; use IkiWiki;
use URI;
sub import { #{{{ sub import { #{{{
hook(type => "preprocess", id => "poll", call => \&preprocess); hook(type => "preprocess", id => "poll", call => \&preprocess);
@ -45,24 +44,28 @@ sub preprocess (@) { #{{{
my $ret=""; my $ret="";
foreach my $choice (@choices) { 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; my $percent=$total > 0 ? int($choices{$choice} / $total * 100) : 0;
$ret.="<p>\n";
if ($showpercent) { if ($showpercent) {
$ret.="$choice ($percent%) "; $ret.="$choice ($percent%)\n";
} }
else { else {
$ret.="$choice ($choices{$choice}) "; $ret.="$choice ($choices{$choice})\n";
} }
if ($open && exists $config{cgiurl}) { if ($open && exists $config{cgiurl}) {
my $url=URI->new($config{cgiurl}); $ret.="<input type=\"hidden\" name=\"do\" value=\"poll\" />\n";
$url->query_form( $ret.="<input type=\"hidden\" name=\"num\" value=\"$pagenum{$params{page}}\" />\n";
"do" => "poll", $ret.="<input type=\"hidden\" name=\"page\" value=\"$params{page}\" />\n";
"num" => $pagenum{$params{page}}, $ret.="<input type=\"hidden\" name=\"choice\" value=\"$choice\" />\n";
"page" => $params{page}, $ret.="<input type=\"submit\" value=\"vote\" />\n";
"choice" => $choice, }
); $ret.="</p>\n<hr class=poll align=left width=\"$percent%\"/>\n";
$ret.="<a class=pollbutton href=\"$url\">vote</a>"; if ($open && exists $config{cgiurl}) {
$ret.="</form>\n";
} }
$ret.="<br />\n<hr class=poll align=left width=\"$percent%\"/>\n";
} }
if ($showtotal) { if ($showtotal) {
$ret.="<span>Total votes: $total</span>\n"; $ret.="<span>Total votes: $total</span>\n";

3
debian/changelog vendored
View File

@ -1,8 +1,9 @@
ikiwiki (1.36) UNRELEASED; urgency=low ikiwiki (1.36) UNRELEASED; urgency=low
* Fix various links on the hyperestradier pages. * 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 ikiwiki (1.35) unstable; urgency=low

View File

@ -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. :) 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]]