add displaytime hook
Need to use a hook because an exported function cannot be reliably overridden. The replacement verstion was actually only affecting plugins loaded after it. formattime doesn't need a hook, since there's no reason to export it.master
parent
3bdc66d300
commit
fd9393ef85
17
IkiWiki.pm
17
IkiWiki.pm
|
@ -898,12 +898,23 @@ sub abs2rel ($$) { #{{{
|
|||
} #}}}
|
||||
|
||||
sub displaytime ($;$) { #{{{
|
||||
# Plugins can override this function to mark up the time for
|
||||
# display.
|
||||
return formattime(@_);
|
||||
my $time=shift;
|
||||
my $format=shift;
|
||||
if (exists $hooks{displaytime}) {
|
||||
my $ret;
|
||||
run_hooks(displaytime => sub {
|
||||
$ret=shift->($time, $format)
|
||||
});
|
||||
return $ret;
|
||||
}
|
||||
else {
|
||||
return formattime($time, $format);
|
||||
}
|
||||
} #}}}
|
||||
|
||||
sub formattime ($;$) { #{{{
|
||||
# Plugins can override this function to mark up the time for
|
||||
# display.
|
||||
my $time=shift;
|
||||
my $format=shift;
|
||||
if (! defined $format) {
|
||||
|
|
|
@ -12,6 +12,7 @@ sub import { #{{{
|
|||
add_underlay("javascript");
|
||||
hook(type => "getsetup", id => "relativedate", call => \&getsetup);
|
||||
hook(type => "format", id => "relativedate", call => \&format);
|
||||
hook(type => "displaytime", id => "relativedate", call => \&display);
|
||||
} # }}}
|
||||
|
||||
sub getsetup () { #{{{
|
||||
|
@ -42,7 +43,7 @@ sub include_javascript ($;$) { #{{{
|
|||
'" type="text/javascript" charset="utf-8"></script>';
|
||||
} #}}}
|
||||
|
||||
sub IkiWiki::displaytime ($;$) { #{{{
|
||||
sub display ($;$) { #{{{
|
||||
my $time=shift;
|
||||
my $format=shift;
|
||||
|
||||
|
|
|
@ -196,7 +196,6 @@ generating the page.
|
|||
|
||||
hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
|
||||
|
||||
|
||||
[[Templates|wikitemplates]] are filled out for many different things in
|
||||
ikiwiki, like generating a page, or part of a blog page, or an rss feed, or
|
||||
a cgi. This hook allows modifying the variables available on those
|
||||
|
@ -361,6 +360,13 @@ This hook is called whenever ikiwiki normally saves its state, just before
|
|||
the state is saved. The function can save other state, modify values before
|
||||
they're saved, etc.
|
||||
|
||||
### displaytime
|
||||
|
||||
hook(type => "displaytime", id => "foo", call => \&display);
|
||||
|
||||
This hook can be registered to override the regular `displaytime` function.
|
||||
Only the last displaytime hook will be used.
|
||||
|
||||
### renamepage
|
||||
|
||||
hook(type => "renamepage", id => "foo", call => \&renamepage);
|
||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
|||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2008-10-19 19:13-0400\n"
|
||||
"POT-Creation-Date: 2008-10-19 20:06-0400\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
|
@ -48,7 +48,7 @@ msgstr ""
|
|||
msgid "You are banned."
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1173
|
||||
#: ../IkiWiki/CGI.pm:385 ../IkiWiki/CGI.pm:386 ../IkiWiki.pm:1182
|
||||
msgid "Error"
|
||||
msgstr ""
|
||||
|
||||
|
@ -926,12 +926,12 @@ msgstr ""
|
|||
msgid "failed to load external plugin needed for %s plugin: %s"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki.pm:1156
|
||||
#: ../IkiWiki.pm:1165
|
||||
#, perl-format
|
||||
msgid "preprocessing loop detected on %s at depth %i"
|
||||
msgstr ""
|
||||
|
||||
#: ../IkiWiki.pm:1665
|
||||
#: ../IkiWiki.pm:1674
|
||||
msgid "yes"
|
||||
msgstr ""
|
||||
|
||||
|
|
Loading…
Reference in New Issue