]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - doc/plugins/write.mdwn
po/todo: added bugreport about new page's type
[git.ikiwiki.info.git] / doc / plugins / write.mdwn
index eb50ca4ef546765d61edd715fb207bfda93026f7..fff142fa20b5f539673579218e0d2a43312c459c 100644 (file)
@@ -321,6 +321,41 @@ This hook should avoid directly redirecting the user to a signin page,
 since it's sometimes used to test to see which pages in a set of pages a
 user can edit.
 
 since it's sometimes used to test to see which pages in a set of pages a
 user can edit.
 
+### cansave
+
+       hook(type => "cansave", id => "foo", call => \&cansave);
+
+This hook can be used to implement arbitrary access methods to control
+when a page being edited can be saved using the web interface (commits
+from revision control bypass it).
+
+When a page is about to be saved, each registered cansave hook is
+called in turn, and passed the page name, the edited content, a CGI
+object and a session object.
+
+The return value of a cansave hook is interpreted the same as for the
+canedit hook.
+
+### canremove
+
+       hook(type => "canremove", id => "foo", call => \&canremove);
+
+This hook can be used to implement arbitrary access methods to control when
+a page can be removed using the web interface (commits from revision control
+bypass it). It works exactly like the `canedit` hook.
+
+### canrename
+
+       hook(type => "canrename", id => "foo", call => \&canrename);
+
+This hook can be used to implement arbitrary access methods to control when
+a page can be renamed using the web interface (commits from revision control
+bypass it). It works exactly like the `canedit` and `canremove` hook,
+but is passed:
+* a CGI object
+* a session object
+* the named parameters `src`, `srcfile`, `dest` and `destfile`.
+
 ### editcontent
 
        hook(type => "editcontent", id => "foo", call => \&editcontent);
 ### editcontent
 
        hook(type => "editcontent", id => "foo", call => \&editcontent);
@@ -376,9 +411,13 @@ new page.
        hook(type => "rename", id => "foo", call => \&renamepages);
 
 When a page or set of pages is renamed, the referenced function is
        hook(type => "rename", id => "foo", call => \&renamepages);
 
 When a page or set of pages is renamed, the referenced function is
-called, and passed a reference to an array of hashes with keys:
-`src`, `srcfile`, `dest`, `destfile`, `required`. It can modify
-the array.
+called, and is passed:
+
+* a reference to an array of hashes with keys: `src`, `srcfile`,
+  `dest`, `destfile`, `required`. Such a hook function can modify
+  the array.
+* a CGI object
+* a session object
 
 ### getsetup
 
 
 ### getsetup