From: intrigeri Date: Tue, 13 Jan 2009 11:26:43 +0000 (+0100) Subject: Merge commit 'upstream/master' into prv/po X-Git-Url: https://scripts.mit.edu/gitweb/www/ikiwiki.git/commitdiff_plain/82197bd0eaa216b841caace38c976acc7f6ad3fa?hp=-c Merge commit 'upstream/master' into prv/po --- 82197bd0eaa216b841caace38c976acc7f6ad3fa diff --combined IkiWiki/Plugin/rename.pm index 82639a073,41af3ca4d..f79349561 --- a/IkiWiki/Plugin/rename.pm +++ b/IkiWiki/Plugin/rename.pm @@@ -87,27 -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 ($$$) { @@@ -216,7 -195,7 +216,7 @@@ sub postrename ($;$$$) # Update edit form content to fix any links present # on it. $postrename->param("editcontent", - renamepage_hook($dest, $src, $dest, + renamelink_hook($dest, $src, $dest, $postrename->param("editcontent"))); # Get a new edit token; old was likely invalidated. @@@ -312,8 -291,6 +312,8 @@@ sub sessioncgi ($$) required => 1, }; + IkiWiki::run_hooks(rename => sub { shift->(\@torename, $q, $session); }); + # See if any subpages need to be renamed. if ($q->param("subpages") && $src ne $dest) { foreach my $p (keys %pagesources) { @@@ -413,22 -390,8 +413,8 @@@ $template->param(error => $rename->{error}); if ($rename->{src} ne $rename->{dest}) { $template->param(brokenlinks_checked => 1); - $template->param(brokenlinks => [ - map { - { - page => htmllink($rename->{dest}, $rename->{dest}, $_, - noimageinline => 1) - } - } @{$rename->{brokenlinks}} - ]); - $template->param(fixedlinks => [ - map { - { - page => htmllink($rename->{dest}, $rename->{dest}, $_, - noimageinline => 1) - } - } @{$rename->{fixedlinks}} - ]); + $template->param(brokenlinks => linklist($rename->{dest}, $rename->{brokenlinks})); + $template->param(fixedlinks => linklist($rename->{dest}, $rename->{fixedlinks})); } $renamesummary.=$template->output; } @@@ -442,11 -405,28 +428,28 @@@ exit 0; } } + + sub linklist { + # generates a list of links in a form suitable for FormBuilder + my $dest=shift; + my $list=shift; + # converts a list of pages into a list of links + # in a form suitable for FormBuilder. + + [map { + { + page => htmllink($dest, $dest, $_, + noimageinline => 1, + linktext => pagetitle($_), + ) + } + } @{$list}] + } -sub renamepage_hook ($$$$) { +sub renamelink_hook ($$$$) { my ($page, $src, $dest, $content)=@_; - IkiWiki::run_hooks(renamepage => sub { + IkiWiki::run_hooks(renamelink => sub { $content=shift->( page => $page, oldpage => $src, @@@ -503,7 -483,7 +506,7 @@@ sub fixlinks ($$$) if ($needfix) { my $file=$pagesources{$page}; my $oldcontent=readfile($config{srcdir}."/".$file); - my $content=renamepage_hook($page, $rename->{src}, $rename->{dest}, $oldcontent); + my $content=renamelink_hook($page, $rename->{src}, $rename->{dest}, $oldcontent); if ($oldcontent ne $content) { my $token=IkiWiki::rcs_prepedit($file); eval { writefile($file, $config{srcdir}, $content) }; diff --combined IkiWiki/Plugin/skeleton.pm.example index ea7500a70,4d7b4e717..0bd5edeef --- a/IkiWiki/Plugin/skeleton.pm.example +++ b/IkiWiki/Plugin/skeleton.pm.example @@@ -6,7 -6,7 +6,7 @@@ package IkiWiki::Plugin::skeleton use warnings; use strict; - use IkiWiki 2.00; + use IkiWiki 3.00; sub import { hook(type => "getopt", id => "skeleton", call => \&getopt); @@@ -30,7 -30,6 +30,7 @@@ hook(type => "auth", id => "skeleton", call => \&auth); hook(type => "sessioncgi", id => "skeleton", call => \&sessioncgi); hook(type => "canedit", id => "skeleton", call => \&canedit); + hook(type => "cansave", id => "skeleton", call => \&cansave); hook(type => "editcontent", id => "skeleton", call => \&editcontent); hook(type => "formbuilder_setup", id => "skeleton", call => \&formbuilder_setup); hook(type => "formbuilder", id => "skeleton", call => \&formbuilder); @@@ -90,7 -89,7 +90,7 @@@ sub linkify (@) return $params{content}; } - sub scan (@) { #{{{a + sub scan (@) { my %params=@_; debug("skeleton plugin running as scan"); @@@ -181,31 -180,6 +181,31 @@@ sub canedit ($$$) debug("skeleton plugin running in canedit"); } +sub cansave ($$$$) { + my $page=shift; + my $content=shift; + my $cgi=shift; + my $session=shift; + + debug("skeleton plugin running in cansave"); +} + +sub canremove ($$$) { + my $page=shift; + my $cgi=shift; + my $session=shift; + + debug("skeleton plugin running in canremove"); +} + +sub canrename ($$$) { + my $page=shift; + my $cgi=shift; + my $session=shift; + + debug("skeleton plugin running in canrename"); +} + sub editcontent ($$$) { my %params=@_;