# - this means that if they do, rocks fall and everyone dies
if ($form->submitted eq PREVIEW) {
- $form->tmpl_param(page_preview =>
- previewcomment($content, $location, $page, time));
+ my $preview=previewcomment($content, $location, $page, time);
+ IkiWiki::run_hooks(format => sub {
+ $preview = shift->(page => $page,
+ content => $preview);
+ });
+ $form->tmpl_param(page_preview => $preview);
}
else {
$form->tmpl_param(page_preview => "");
if (defined $cgi->param('sid')) {
IkiWiki::checksessionexpiry($cgi, $session);
+ my $rejectalldefer=$cgi->param('rejectalldefer');
+
my %vars=$cgi->Vars;
my $added=0;
foreach my $id (keys %vars) {
if ($id =~ /(.*)\Q._comment\E$/) {
my $action=$cgi->param($id);
- next if $action eq 'Defer';
+ next if $action eq 'Defer' && ! $rejectalldefer;
# Make sure that the id is of a legal
# pending comment before untainting.
my ($id, $ctime)=@{$_};
my $file="$config{wikistatedir}/comments_pending/$id";
my $content=readfile($file);
- my $ctime=(stat($file))[10];
+ my $preview=previewcomment($content, $id,
+ IkiWiki::dirname($_), $ctime);
{
id => $id,
- view => previewcomment($content, $id,
- IkiWiki::dirname($_), $ctime),
+ view => $preview,
}
} sort { $b->[1] <=> $a->[1] } comments_pending();
comments => \@comments,
);
IkiWiki::printheader($session);
- print IkiWiki::misctemplate(gettext("comment moderation"), $template->output);
+ my $out=$template->output;
+ IkiWiki::run_hooks(format => sub {
+ $out = shift->(page => "", content => $out);
+ });
+ print IkiWiki::misctemplate(gettext("comment moderation"), $out);
exit;
}
my $preview = IkiWiki::htmlize($location, $page, '_comment',
IkiWiki::linkify($location, $page,
- IkiWiki::preprocess($location, $page,
- IkiWiki::filter($location,
- $page, $content),
- 0, 1)));
- IkiWiki::run_hooks(format => sub {
- $preview = shift->(page => $page,
- content => $preview);
- });
+ IkiWiki::preprocess($location, $page,
+ IkiWiki::filter($location, $page, $content), 0, 1)));
my $template = template("comment.tmpl");
$template->param(content => $preview);