}
# The untaint is OK (as in editpage) because we're about to pass
- # it to file_pruned anyway
- my $page = $form->field('page');
+ # it to file_pruned and wiki_file_regexp anyway.
+ my ($page) = $form->field('page')=~/$config{wiki_file_regexp}/;
$page = IkiWiki::possibly_foolish_untaint($page);
if (! defined $page || ! length $page ||
IkiWiki::file_pruned($page)) {
error(gettext("bad page name"));
}
- my $baseurl = urlto($page);
-
$form->title(sprintf(gettext("commenting on %s"),
- IkiWiki::pagetitle($page)));
+ IkiWiki::pagetitle(IkiWiki::basename($page))));
$form->tmpl_param('helponformattinglink',
htmllink($page, $page, 'ikiwiki/formatting',
if ($form->submitted eq CANCEL) {
# bounce back to the page they wanted to comment on, and exit.
- IkiWiki::redirect($cgi, $baseurl);
+ IkiWiki::redirect($cgi, urlto($page));
exit;
}
IkiWiki::saveindex();
IkiWiki::printheader($session);
- print IkiWiki::misctemplate(gettext(gettext("comment stored for moderation")),
+ print IkiWiki::cgitemplate($cgi, gettext(gettext("comment stored for moderation")),
"<p>".
gettext("Your comment will be posted after moderator review").
"</p>");
}
else {
- IkiWiki::showform ($form, \@buttons, $session, $cgi,
- forcebaseurl => $baseurl, page => $page);
+ IkiWiki::showform($form, \@buttons, $session, $cgi,
+ page => $page);
}
exit;
IkiWiki::run_hooks(format => sub {
$out = shift->(page => "", content => $out);
});
- print IkiWiki::misctemplate(gettext("comment moderation"), $out);
+ print IkiWiki::cgitemplate($cgi, gettext("comment moderation"), $out);
exit;
}
sub commentsshown ($) {
my $page=shift;
- return ! pagespec_match($page, "comment(*)",
- location => $page) &&
- pagespec_match($page, $config{comments_pagespec},
- location => $page);
+ return pagespec_match($page, $config{comments_pagespec},
+ location => $page);
}
sub commentsopen ($) {
my $comments = undef;
if ($shown) {
$comments = IkiWiki::preprocess_inline(
- pages => "comment($page)",
+ pages => "comment($page) and !comment($page/*)",
template => 'comment',
show => 0,
reverse => 'yes',