]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki.pm
change plugin interface to use named parameters for flexability
[ikiwiki.git] / IkiWiki.pm
index e3bdc8d83c8739b9e3a140788026aca2d58ab306..9a7b4fe911a284f7a11dfc19060ffbddef2b2401 100644 (file)
@@ -7,7 +7,7 @@ use File::Spec;
 use HTML::Template;
 
 use vars qw{%config %links %oldlinks %oldpagemtime %pagectime
 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}) {
 
 sub checkconfig () { #{{{
        if ($config{cgi} && ! length $config{url}) {
@@ -387,12 +387,14 @@ sub globlist_match ($$) { #{{{
        return 0;
 } #}}}
 
        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
 } # }}}
 
 1