OSDN Git Service

削除されたページを完全に削除できるようにした。
[fswiki/fswiki.git] / plugin / attach / AttachRename.pm
1 ###############################################################################
2
3 # rename¥×¥é¥°¥¤¥ó¤Ë¤è¤Ã¤Æ¸Æ¤Ó½Ð¤µ¤ì¤ërename¥Õ¥Ã¥¯¡£
4
5 ###############################################################################
6 package plugin::attach::AttachRename;
7 use strict;
8 use File::Copy;
9 #==============================================================================
10 # ¥³¥ó¥¹¥È¥é¥¯¥¿
11 #==============================================================================
12 sub new {
13         my $class = shift;
14         my $self = {};
15         return bless $self,$class;
16 }
17
18 #==============================================================================
19 # ¥Õ¥Ã¥¯¥á¥½¥Ã¥É¡Ê¥Ú¡¼¥¸¤Î¥ê¥Í¡¼¥à»þ¤ËźÉÕ¥Õ¥¡¥¤¥ë¤ò¥³¥Ô¡¼¤¹¤ë¡Ë
20 #==============================================================================
21 sub hook {
22         my $self    = shift;
23         my $wiki    = shift;
24         my $page    = $wiki->get_CGI()->param("page");
25         my $newpage = $wiki->get_CGI()->param("newpage");
26         my $dir     = $wiki->config('attach_dir');
27         
28         foreach my $file (glob(sprintf("%s/%s.*",$dir,&Util::url_encode($page)))){
29                 if($file  =~ /^(.+)\.(.+)$/){
30                         my $enc_file = $2;
31                         copy(sprintf("%s/%s.%s",$dir,&Util::url_encode($page)   ,$enc_file),
32                                  sprintf("%s/%s.%s",$dir,&Util::url_encode($newpage),$enc_file))
33                         or die &Util::url_decode($enc_file)."¤Î¥³¥Ô¡¼¤Ë¼ºÇÔ¤·¤Þ¤·¤¿¡£\n\n$!";
34                 }
35         }
36         
37 }
38
39 1;