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 ($;$) { #{{{
|
sub displaytime ($;$) { #{{{
|
||||||
# Plugins can override this function to mark up the time for
|
my $time=shift;
|
||||||
# display.
|
my $format=shift;
|
||||||
return formattime(@_);
|
if (exists $hooks{displaytime}) {
|
||||||
|
my $ret;
|
||||||
|
run_hooks(displaytime => sub {
|
||||||
|
$ret=shift->($time, $format)
|
||||||
|
});
|
||||||
|
return $ret;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return formattime($time, $format);
|
||||||
|
}
|
||||||
} #}}}
|
} #}}}
|
||||||
|
|
||||||
sub formattime ($;$) { #{{{
|
sub formattime ($;$) { #{{{
|
||||||
|
# Plugins can override this function to mark up the time for
|
||||||
|
# display.
|
||||||
my $time=shift;
|
my $time=shift;
|
||||||
my $format=shift;
|
my $format=shift;
|
||||||
if (! defined $format) {
|
if (! defined $format) {
|
||||||
|
|
|
@ -12,6 +12,7 @@ sub import { #{{{
|
||||||
add_underlay("javascript");
|
add_underlay("javascript");
|
||||||
hook(type => "getsetup", id => "relativedate", call => \&getsetup);
|
hook(type => "getsetup", id => "relativedate", call => \&getsetup);
|
||||||
hook(type => "format", id => "relativedate", call => \&format);
|
hook(type => "format", id => "relativedate", call => \&format);
|
||||||
|
hook(type => "displaytime", id => "relativedate", call => \&display);
|
||||||
} # }}}
|
} # }}}
|
||||||
|
|
||||||
sub getsetup () { #{{{
|
sub getsetup () { #{{{
|
||||||
|
@ -42,7 +43,7 @@ sub include_javascript ($;$) { #{{{
|
||||||
'" type="text/javascript" charset="utf-8"></script>';
|
'" type="text/javascript" charset="utf-8"></script>';
|
||||||
} #}}}
|
} #}}}
|
||||||
|
|
||||||
sub IkiWiki::displaytime ($;$) { #{{{
|
sub display ($;$) { #{{{
|
||||||
my $time=shift;
|
my $time=shift;
|
||||||
my $format=shift;
|
my $format=shift;
|
||||||
|
|
||||||
|
|
|
@ -196,7 +196,6 @@ generating the page.
|
||||||
|
|
||||||
hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
|
hook(type => "pagetemplate", id => "foo", call => \&pagetemplate);
|
||||||
|
|
||||||
|
|
||||||
[[Templates|wikitemplates]] are filled out for many different things in
|
[[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
|
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
|
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
|
the state is saved. The function can save other state, modify values before
|
||||||
they're saved, etc.
|
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
|
### renamepage
|
||||||
|
|
||||||
hook(type => "renamepage", id => "foo", call => \&renamepage);
|
hook(type => "renamepage", id => "foo", call => \&renamepage);
|
||||||
|
|
|
@ -8,7 +8,7 @@ msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"Report-Msgid-Bugs-To: \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"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -48,7 +48,7 @@ msgstr ""
|
||||||
msgid "You are banned."
|
msgid "You are banned."
|
||||||
msgstr ""
|
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"
|
msgid "Error"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -926,12 +926,12 @@ msgstr ""
|
||||||
msgid "failed to load external plugin needed for %s plugin: %s"
|
msgid "failed to load external plugin needed for %s plugin: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki.pm:1156
|
#: ../IkiWiki.pm:1165
|
||||||
#, perl-format
|
#, perl-format
|
||||||
msgid "preprocessing loop detected on %s at depth %i"
|
msgid "preprocessing loop detected on %s at depth %i"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../IkiWiki.pm:1665
|
#: ../IkiWiki.pm:1674
|
||||||
msgid "yes"
|
msgid "yes"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue