From a44bfb158dac9e04647a75bc819a73bc18f5acce Mon Sep 17 00:00:00 2001 From: joey Date: Wed, 3 May 2006 19:58:58 +0000 Subject: change plugin interface to use named parameters for flexability --- IkiWiki.pm | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'IkiWiki.pm') diff --git a/IkiWiki.pm b/IkiWiki.pm index e3bdc8d83..9a7b4fe91 100644 --- a/IkiWiki.pm +++ b/IkiWiki.pm @@ -7,7 +7,7 @@ use File::Spec; use HTML::Template; use vars qw{%config %links %oldlinks %oldpagemtime %pagectime - %renderedfiles %pagesources %depends %plugins}; + %renderedfiles %pagesources %depends %hooks}; sub checkconfig () { #{{{ if ($config{cgi} && ! length $config{url}) { @@ -387,12 +387,14 @@ sub globlist_match ($$) { #{{{ return 0; } #}}} -sub register_plugin ($$$) { # {{{ - my $type=shift; - my $command=shift; - my $function=shift; +sub hook (@) { # {{{ + my %param=@_; - $plugins{$type}{$command}=$function; + if (! exists $param{type} || ! ref $param{call} || ! exists $param{id}) { + error "hook requires type, call, and id parameters"; + } + + $hooks{$param{type}}{$param{id}}=\%param; } # }}} 1 -- cgit v1.2.3