diff options
-rw-r--r-- | IkiWiki.pm | 11 | ||||
-rw-r--r-- | IkiWiki/Plugin/recentchanges.pm | 18 | ||||
-rw-r--r-- | templates/page.tmpl | 3 |
3 files changed, 26 insertions, 6 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm index 33e4e1d1f..46c29abe3 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -1748,7 +1748,6 @@ sub misctemplate ($$;@) { $template->param( dynamic => 1, - have_actions => 0, # force off title => $title, wikiname => $config{wikiname}, content => $content, @@ -1756,6 +1755,16 @@ sub misctemplate ($$;@) { html5 => $config{html5}, @_, ); + + my @actions; + run_hooks(pageactions => sub { + push @actions, map { { action => $_ } } + grep { defined } shift->(page => ""); + }); + $template->param(actions => \@actions); + if (@actions) { + $template->param(have_actions => 1); + } return $template->output; } diff --git a/IkiWiki/Plugin/recentchanges.pm b/IkiWiki/Plugin/recentchanges.pm index 5c7b71aaa..65044080f 100644 --- a/IkiWiki/Plugin/recentchanges.pm +++ b/IkiWiki/Plugin/recentchanges.pm @@ -11,6 +11,7 @@ sub import { hook(type => "getsetup", id => "recentchanges", call => \&getsetup); hook(type => "checkconfig", id => "recentchanges", call => \&checkconfig); hook(type => "refresh", id => "recentchanges", call => \&refresh); + hook(type => "pageactions", id => "recentchanges", call => \&pageactions); hook(type => "pagetemplate", id => "recentchanges", call => \&pagetemplate); hook(type => "htmlize", id => "_change", call => \&htmlize); # Load goto to fix up links from recentchanges @@ -61,14 +62,27 @@ sub refresh ($) { } # Enable the recentchanges link on wiki pages. +sub pageactions (@) { + my %params=@_; + my $page=$params{page}; + + if (defined $config{recentchangespage} && $config{rcs} && + $page ne $config{recentchangespage}) { + return htmllink($page, $page, $config{recentchangespage}, + gettext("RecentChanges")); + } +} + +# Backwards compatability for templates still using +# RECENTCHANGESURL. sub pagetemplate (@) { my %params=@_; my $template=$params{template}; my $page=$params{page}; if (defined $config{recentchangespage} && $config{rcs} && - $page ne $config{recentchangespage} && - $template->query(name => "recentchangesurl")) { + $template->query(name => "recentchangesurl") && + $page ne $config{recentchangespage}) { $template->param(recentchangesurl => urlto($config{recentchangespage}, $page)); $template->param(have_actions => 1); } diff --git a/templates/page.tmpl b/templates/page.tmpl index 3bb7197f0..049d31ad5 100644 --- a/templates/page.tmpl +++ b/templates/page.tmpl @@ -61,9 +61,6 @@ <TMPL_IF EDITURL> <li><a href="<TMPL_VAR EDITURL>" rel="nofollow">Edit</a></li> </TMPL_IF> -<TMPL_IF RECENTCHANGESURL> -<li><a href="<TMPL_VAR RECENTCHANGESURL>">RecentChanges</a></li> -</TMPL_IF> <TMPL_IF HISTORYURL> <li><a href="<TMPL_VAR HISTORYURL>">History</a></li> </TMPL_IF> |