refactor template actions

master
Joey Hess 2010-05-14 20:20:41 -04:00
parent 377e82b16c
commit bbe971881a
2 changed files with 21 additions and 19 deletions

View File

@ -1756,17 +1756,31 @@ sub misctemplate ($$;@) {
@_,
);
templateactions($template, "");
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 => "");
grep { defined } shift->(page => $page);
});
$template->param(actions => \@actions);
if (@actions) {
$template->param(have_actions => 1);
if ($config{cgiurl} && exists $hooks{auth}) {
$template->param(prefsurl => cgiurl(do => "prefs"));
$have_actions=1;
}
return $template->output;
if ($have_actions || @actions) {
$template->param(have_actions => 1);
}
}
sub hook (@) {

View File

@ -84,19 +84,14 @@ sub genpage ($$) {
$template=template('page.tmpl',
blind_cache => 1);
}
my $actions=0;
my $actions=0;
if (length $config{cgiurl}) {
if (IkiWiki->can("cgi_editpage")) {
$template->param(editurl => cgiurl(do => "edit", page => $page));
$actions++;
}
if (exists $hooks{auth}) {
$template->param(prefsurl => cgiurl(do => "prefs"));
$actions++;
}
}
if (defined $config{historyurl} && length $config{historyurl}) {
my $u=$config{historyurl};
$u=~s/\[\[file\]\]/$pagesources{$page}/g;
@ -111,17 +106,10 @@ sub genpage ($$) {
$actions++;
}
}
my @actions;
run_hooks(pageactions => sub {
push @actions, map { { action => $_ } }
grep { defined } shift->(page => $page);
});
$template->param(actions => \@actions);
if ($actions || @actions) {
if ($actions) {
$template->param(have_actions => 1);
}
templateactions($template, $page);
my @backlinks=sort { $a->{page} cmp $b->{page} } backlinks($page);
my ($backlinks, $more_backlinks);