summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-05-14 20:04:02 -0400
committerJoey Hess <joey@kitenet.net>2010-05-14 20:04:02 -0400
commit5a4c95cc352d6895c11542245981c62a5c003370 (patch)
treeff0fef8712951354ba105608829398aaa182cd20
parent8ff761afa24febdb280c672b3b31d6145990f050 (diff)
enable action bar on misctemplates
So RecentChanges shows on the action bar there, convert recentchanges to use new pageactions hook, with compatability code to avoid breaking old templates.
-rw-r--r--IkiWiki.pm11
-rw-r--r--IkiWiki/Plugin/recentchanges.pm18
-rw-r--r--templates/page.tmpl3
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>