1############################################################################### 2# 3# �ڡ���̾�Τ��ѹ����ڡ����Υ��ԡ���ϥ�ɥ顣 4# ��������rename�եå���ƤӽФ��ޤ��� 5# 6############################################################################### 7package plugin::rename::RenameHandler; 8use strict; 9#============================================================================== 10# ���ȥ饯�� 11#============================================================================== 12sub new { 13 my $class = shift; 14 my $self = {}; 15 return bless $self,$class; 16} 17 18#============================================================================== 19# ���������μ¹� 20#============================================================================== 21sub do_action { 22 my $self = shift; 23 my $wiki = shift; 24 25 return $self->do_rename($wiki); 26} 27 28#============================================================================== 29# ��͡����¹� 30#============================================================================== 31sub do_rename { 32 my $self = shift; 33 my $wiki = shift; 34 my $cgi = $wiki->get_CGI; 35 36 my $pagename = $cgi->param("page"); 37 my $newpagename = $cgi->param("newpage"); 38 my $do = $cgi->param("do"); 39 my $time = $wiki->get_last_modified($pagename); 40 my $buf = ""; 41 my $login = $wiki->get_login_info(); 42 43 # ���顼�����å� 44 if($newpagename eq ""){ 45 return $wiki->error("�ڡ��������ꤵ��Ƥ��ޤ���!!"); 46 } 47 if($newpagename =~ /[\|:\[\]]/){ 48 return $wiki->error("�ڡ���̾�˻��ѤǤ��ʤ�ʸ�����ޤޤ�Ƥ��ޤ���"); 49 } 50 if($wiki->page_exists($newpagename)){ 51 return $wiki->error("���˥�͡�����Υڡ�����¸�ߤ��ޤ�!!"); 52 } 53 if($newpagename eq $pagename){ 54 return $wiki->error("Ʊ��Υڡ��������ꤵ��Ƥ��ޤ�!!"); 55 } 56 if(!$wiki->can_modify_page($pagename) || !$wiki->can_modify_page($newpagename)){ 57 return $wiki->error("�ڡ������Խ��ϵ��Ĥ���Ƥ��ޤ���"); 58 } 59 if($wiki->page_exists($pagename)){ 60 if($cgi->param("lastmodified") < $time){ 61 return $wiki->error("�ڡ����ϴ����̤Υ桼���ˤ�äƹ�������Ƥ��ޤ���"); 62 } 63 } 64 65 # FrontPage���ư���褦�Ȥ������ˤϥ��顼 66 if($pagename eq $wiki->config("frontpage") && $do ne "copy"){ 67 return $wiki->error($wiki->config("frontpage")."���ư���뤳�ȤϤǤ��ޤ���"); 68 } 69 70 # ���ԡ����� 71 $wiki->do_hook("rename"); 72 my $content = $wiki->get_page($pagename); 73 $wiki->save_page($newpagename,$content); 74 75 # ������� 76 if($do eq "move"){ 77 $wiki->save_page($pagename,''); 78 }elsif($do eq "movewm"){ 79 $wiki->save_page($pagename,'[['.$newpagename.']]�˰�ư���ޤ�����'); 80 } 81 82 # �եå��ε�ư���ֵѥ�å����� 83 if($do eq "copy"){ 84 $wiki->set_title($pagename."�ԡ����ޤ���"); 85 return $cgi->escapeHTML($pagename)."�ԡ����ޤ�����"; 86 } else { 87 $wiki->set_title($pagename."���͡��ष�ޤ���"); 88 return $cgi->escapeHTML($pagename)."���͡��ष�ޤ�����"; 89 } 90} 91 921; 93