]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Plugin/editpage.pm
editpage: added a cansave hook
[ikiwiki.git] / IkiWiki / Plugin / editpage.pm
index ed994306f55251b561acf61459fcdc06fef8b994..91d125a5ca1ca30e836706a6e5e2aa43df6eced2 100644 (file)
@@ -81,6 +81,33 @@ sub check_canedit ($$$;$) {
        return $canedit;
 }
 
+sub check_cansave ($$$$) {
+       my $page=shift;
+       my $content=shift;
+       my $q=shift;
+       my $session=shift;
+
+       my $cansave;
+       run_hooks(cansave => sub {
+               return if defined $cansave;
+               my $ret=shift->($page, $content, $q, $session);
+               if (defined $ret) {
+                       if ($ret eq "") {
+                               $cansave=1;
+                       }
+                       elsif (ref $ret eq 'CODE') {
+                               $ret->();
+                               $cansave=0;
+                       }
+                       else {
+                               error($ret);
+                               $cansave=0;
+                       }
+               }
+       });
+       return $cansave;
+}
+
 sub cgi_editpage ($$) {
        my $q=shift;
        my $session=shift;
@@ -370,6 +397,7 @@ sub cgi_editpage ($$) {
                }
                
                my $content=$form->field('editcontent');
+               check_cansave($page, $content, $q, $session);
                run_hooks(editcontent => sub {
                        $content=shift->(
                                content => $content,