]> scripts.mit.edu Git - www/ikiwiki.git/commitdiff
Merge commit 'upstream/master' into prv/po
authorintrigeri <intrigeri@boum.org>
Tue, 13 Jan 2009 11:26:43 +0000 (12:26 +0100)
committerintrigeri <intrigeri@boum.org>
Tue, 13 Jan 2009 11:26:43 +0000 (12:26 +0100)
1  2 
IkiWiki/Plugin/rename.pm
IkiWiki/Plugin/skeleton.pm.example

diff --combined IkiWiki/Plugin/rename.pm
index 82639a073349f8f2ef1d5943df11b653a2f88a9a,41af3ca4d61b2495dc0e69e77da6513a2de07373..f793495612c2d360dd2df480c33913f0ad801b7b
@@@ -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) {
                                $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;
                        }
                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) };
index ea7500a70fb96b3494bc58f6b7cbbf7673d08e21,4d7b4e7172d745312c7433daeb797f53b29dc05b..0bd5edeef748b328cfd869c2104860a1c0b6794f
@@@ -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=@_;