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.
+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,
+but is passed the named parameters `cgi` (a CGI object), `session`
+(a session object) and `page` (the page subject to deletion).
### 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`.
+bypass it). It works exactly like the `canedit` hook,
+but is passed the named parameters `cgi` (a CGI object), `session` (a
+session object), `src`, `srcfile`, `dest` and `destfile`.
### checkcontent
Logs a debugging message. These are supressed unless verbose mode is turned
on.
-#### `warning($)`
-
-Logs a warning message.
-
#### `error($;$)`
Aborts with an error message. If the second parameter is passed, it is a