my $time=formattime($_[0], $_[1]);
if ($config{html5}) {
return '<time datetime="'.date_3339($_[0]).'"'.
- ($_[2] ? ' pubdate' : '').
+ ($_[2] ? ' pubdate="pubdate"' : '').
'>'.$time.'</time>';
}
else {
run_hooks(pagetemplate => sub {
shift->(page => "", destpage => "", template => $template);
});
+ templateactions($template, "");
$template->param(
dynamic => 1,
- have_actions => 0, # force off
title => $title,
wikiname => $config{wikiname},
content => $content,
html5 => $config{html5},
@_,
);
-
+
return $template->output;
}
+sub templateactions ($$) {
+ my $template=shift;
+ my $page=shift;
+
+ my $have_actions=0;
+ my @actions;
+ run_hooks(pageactions => sub {
+ push @actions, map { { action => $_ } }
+ grep { defined } shift->(page => $page);
+ });
+ $template->param(actions => \@actions);
+
+ if ($config{cgiurl} && exists $hooks{auth}) {
+ $template->param(prefsurl => cgiurl(do => "prefs"));
+ $have_actions=1;
+ }
+
+ if ($have_actions || @actions) {
+ $template->param(have_actions => 1);
+ }
+}
+
sub hook (@) {
my %param=@_;
}
sub match_internal ($$;@) {
- return match_glob($_[0], $_[1], @_, internal => 1)
+ return match_glob(shift, shift, @_, internal => 1)
}
sub match_page ($$;@) {
my $page=shift;
- my $match=match_glob($page, $_[1], @_);
- if ($match && ! defined IkiWiki::pagetype($IkiWiki::pagesources{$page})) {
+ my $match=match_glob($page, shift, @_);
+ if ($match && ! (exists $IkiWiki::pagesources{$page}
+ && defined IkiWiki::pagetype($IkiWiki::pagesources{$page}))) {
return IkiWiki::FailReason->new("$page is not a page");
}
else {