############################################################################### # # renameプラグインによって呼び出されるrenameフック。 # ############################################################################### package plugin::attach::AttachRename; use strict; use File::Copy; #============================================================================== # コンストラクタ #============================================================================== sub new { my $class = shift; my $self = {}; return bless $self,$class; } #============================================================================== # フックメソッド(ページのリネーム時に添付ファイルをコピーする) #============================================================================== sub hook { my $self = shift; my $wiki = shift; my $page = $wiki->get_CGI()->param("page"); my $newpage = $wiki->get_CGI()->param("newpage"); my $dir = $wiki->config('attach_dir'); foreach my $file (glob(sprintf("%s/%s.*",$dir,&Util::url_encode($page)))){ if($file =~ /^(.+)\.(.+)$/){ my $enc_file = $2; copy(sprintf("%s/%s.%s",$dir,&Util::url_encode($page) ,$enc_file), sprintf("%s/%s.%s",$dir,&Util::url_encode($newpage),$enc_file)) or die &Util::url_decode($enc_file)."のコピーに失敗しました。\n\n$!"; } } } 1;