hook(type => "format", id => "skeleton", call => \&format);
hook(type => "pagetemplate", id => "skeleton", call => \&pagetemplate);
hook(type => "templatefile", id => "skeleton", call => \&templatefile);
+ hook(type => "pageactions", id => "skeleton", call => \&pageactions);
hook(type => "delete", id => "skeleton", call => \&delete);
hook(type => "change", id => "skeleton", call => \&change);
hook(type => "cgi", id => "skeleton", call => \&cgi);
debug("skeleton plugin running as a templatefile hook");
}
+sub pageactions (@) {
+ my %params=@_;
+ my $page=$params{page};
+
+ debug("skeleton plugin running as a pageactions hook");
+ return ();
+}
+
sub delete (@) {
my @files=@_;
}
}
- if ($actions) {
+ my @actions;
+ run_hooks(pageactions => sub {
+ push @actions, map { { action => $_ } }
+ grep { defined } shift->(page => $page);
+ });
+ $template->param(actions => \@actions);
+
+ if ($actions || @actions) {
$template->param(have_actions => 1);
}
* In html5 mode, use all the nice new semantic tags. Care was taken
to not change the id/class named used in the CSS, so only CSS
that refers to tag types needed to be changed.
+ * Add ACTIONS variable to page.tmpl, which allows plugins to add arbitrary
+ links to the action bar without modifying the template further.
+ (COMMENTSLINK and DISCUSSIONLINK could be folded into this, but
+ are kept separate for now to avoid breaking modified templates.)
-- Joey Hess <joeyh@debian.org> Sun, 02 May 2010 13:22:50 -0400
template directory), or undef if it doesn't want to change the default
("page.tmpl").
+### pageactions
+
+ hook(type => "pageactions", id => "foo", call => \&pageactions);
+
+This hook allows plugins to add arbitrary actions to the action bar on a
+page (next to Edit, RecentChanges, etc). The hook is passed a "page"
+parameter, and can return a list of html fragments to add to the action
+bar.
+
### sanitize
hook(type => "sanitize", id => "foo", call => \&sanitize);
<TMPL_IF NAME="PREFSURL">
<li><a href="<TMPL_VAR PREFSURL>">Preferences</a></li>
</TMPL_IF>
+<TMPL_IF NAME="ACTIONS">
+<TMPL_LOOP NAME="ACTIONS">
+<li><TMPL_VAR ACTION></li>
+</TMPL_LOOP>
+</TMPL_IF>
<TMPL_IF NAME="COMMENTSLINK">
-<li><TMPL_VAR COMMENTSLINK><br /></li>
+<li><TMPL_VAR COMMENTSLINK></li>
<TMPL_ELSE>
<TMPL_IF NAME="DISCUSSIONLINK">
-<li><TMPL_VAR DISCUSSIONLINK><br /></li>
+<li><TMPL_VAR DISCUSSIONLINK></li>
</TMPL_IF>
</TMPL_IF>
</ul>