X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/5738f30a2954705f7954e7fb99205f5a08d35ccb..4fd2807886d5fa376e5f74bb8c75f7cf4ef7fd15:/IkiWiki/Plugin/rename.pm diff --git a/IkiWiki/Plugin/rename.pm b/IkiWiki/Plugin/rename.pm index 227f59bfa..82639a073 100644 --- a/IkiWiki/Plugin/rename.pm +++ b/IkiWiki/Plugin/rename.pm @@ -3,7 +3,7 @@ package IkiWiki::Plugin::rename; use warnings; use strict; -use IkiWiki 2.00; +use IkiWiki 3.00; sub import { hook(type => "getsetup", id => "rename", call => \&getsetup); @@ -87,6 +87,27 @@ sub check_canrename ($$$$$$) { IkiWiki::Plugin::attachment::check_canattach($session, $dest, $srcfile); } } + + my $canrename; + IkiWiki::run_hooks(canrename => sub { + return if defined $canrename; + my $ret=shift->($q, $session, src => $src, srcfile => $srcfile, + dest => $dest, destfile => $destfile); + if (defined $ret) { + if ($ret eq "") { + $canrename=1; + } + elsif (ref $ret eq 'CODE') { + $ret->(); + $canrename=0; + } + elsif (defined $ret) { + error($ret); + $canrename=0; + } + } + }); + return $canrename; } sub rename_form ($$$) { @@ -291,7 +312,7 @@ sub sessioncgi ($$) { required => 1, }; - IkiWiki::run_hooks(rename => sub { shift->(\@torename); }); + IkiWiki::run_hooks(rename => sub { shift->(\@torename, $q, $session); }); # See if any subpages need to be renamed. if ($q->param("subpages") && $src ne $dest) {