]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/CGI.pm
dirname, basename, bestlink, linkify, pagetitle, titlepage.
[ikiwiki.git] / IkiWiki / CGI.pm
index 92d042dc92612bc01f4d5d23d1afcd2692d18e6f..15e86651d419f64e4b8e48dd5797feaafe8057ef 100644 (file)
@@ -2,6 +2,7 @@
 
 use warnings;
 use strict;
+use IkiWiki;
 use IkiWiki::UserInfo;
 
 package IkiWiki;
@@ -12,7 +13,7 @@ sub page_locked ($$;$) { #{{{
        my $nonfatal=shift;
        
        my $user=$session->param("name");
-       return if length $user && is_admin($user);
+       return if defined $user && is_admin($user);
 
        foreach my $admin (@{$config{adminuser}}) {
                my $locked_pages=userinfo_get($admin, "locked_pages");
@@ -483,26 +484,21 @@ sub cgi_editpage ($$) { #{{{
        }
 } #}}}
 
-sub cgi_hyperestraier () { #{{{
-       # only works for GET requests
-       chdir("$config{wikistatedir}/hyperestraier") || error("chdir: $!");
-       exec("./".basename($config{cgiurl})) || error("estseek.cgi failed");
-} #}}}
-
 sub cgi () { #{{{
        eval q{use CGI};
        eval q{use CGI::Session};
        
        my $q=CGI->new;
        
+       if (exists $hooks{cgi}) {
+               foreach my $id (keys %{$hooks{cgi}}) {
+                       $hooks{cgi}{$id}{call}->($q);
+               }
+       }
+       
        my $do=$q->param('do');
        if (! defined $do || ! length $do) {
-               if (defined $q->param('phrase')) {
-                       cgi_hyperestraier();
-               }
-               else {
-                       error("\"do\" parameter missing");
-               }
+               error("\"do\" parameter missing");
        }
        
        # Things that do not need a session.