}
#==============================================================================
+# ºï½ü¤µ¤ì¤¿¥Ú¡¼¥¸¤òµÏ¿¤¹¤ë¥Õ¥¡¥¤¥ë¤Î¥Ñ¥¹¤òÊÖ¤¹´Ø¿ô
+#==============================================================================
+sub _get_deleted_file {
+ my $wiki = shift;
+ return $wiki->config('log_dir')."/".$DELETED_FILE
+}
+
+#==============================================================================
# ¥Ú¡¼¥¸¤Îºï½ü»þ¤Ë¸Æ¤Ó½Ð¤µ¤ì¤ë
#==============================================================================
sub hook {
my $self = shift;
my $wiki = shift;
- open(FILE, ">>".$wiki->config('log_dir')."/".$DELETED_FILE);
+ open(FILE, ">>".&_get_deleted_file($wiki));
+ binmode(FILE);
print FILE $wiki->get_CGI()->param("page")."\t".time()."\n";
close(FILE);
}
my $cgi = $wiki->get_CGI;
if($cgi->param('revert')){
$self->revert($wiki);
+ $wiki->redirectURL($wiki->create_url({ action=>"ADMINDELETED"}));
+ }
+ if($cgi->param('forget')){
+ $self->forget($wiki);
+ $wiki->redirectURL($wiki->create_url({ action=>"ADMINDELETED"}));
}
return $self->deleted_page_list($wiki);
}
}
#==============================================================================
+# ¥Ú¡¼¥¸¤ò´°Á´¤Ëºï½ü
+#==============================================================================
+sub forget {
+ my $self = shift;
+ my $wiki = shift;
+ my @selected_pages = $wiki->get_CGI()->param('pages');
+ my $deleted_file = &_get_deleted_file($wiki);
+
+ # ºï½ü¥Ú¡¼¥¸¤òµÏ¿¤¹¤ë¥Õ¥¡¥¤¥ë¤«¤éÁªÂò¤µ¤ì¤¿¥Ú¡¼¥¸¤òºï½ü
+ Util::file_lock($deleted_file);
+ open(FILE, $deleted_file);
+ my $pages = {};
+ my $buf = "";
+ while(my $LINE = <FILE>){
+ my ($page, $mod) = split(/\t/, Util::trim($LINE));
+ unless($wiki->page_exists($page)){
+ my $selected = 0;
+ foreach my $selected_page (@selected_pages){
+ if($page eq $selected_page){
+ $selected = 1;
+ last;
+ }
+ }
+ if($selected == 0){
+ $buf .= $page."\t".$mod."\n";
+ }
+ }
+ }
+ close(FILE);
+
+ open(FILE, ">".$deleted_file);
+ binmode(FILE);
+ print FILE $buf;
+ close(FILE);
+ Util::file_unlock($deleted_file);
+
+ # ¥Ð¥Ã¥¯¥¢¥Ã¥×¥Õ¥¡¥¤¥ë¤âºï½ü
+ foreach my $selected_page (@selected_pages){
+ my @backup_files = glob(&Util::make_filename($wiki->config('backup_dir'), &Util::url_encode($selected_page), "*"));
+ foreach my $backup_file (@backup_files){
+ unlink($backup_file);
+ }
+ }
+}
+
+#==============================================================================
# ºï½ü¤µ¤ì¤¿¥Ú¡¼¥¸¤Î°ìÍ÷
#==============================================================================
sub deleted_page_list {
</tr>
|;
- open(FILE, $wiki->config('log_dir')."/".$DELETED_FILE);
+ open(FILE, &_get_deleted_file($wiki));
my $pages = {};
while(my $LINE = <FILE>){
- my ($page, $mod) = split(/\t/, $LINE);
+ my ($page, $mod) = split(/\t/, Util::trim($LINE));
unless($wiki->page_exists($page)){
$pages->{$page} = $mod;
}
$buf .= qq|</table>
<input type="hidden" name="action" value="ADMINDELETED">
- <input type="submit" name="revert" value="¥Á¥§¥Ã¥¯¤·¤¿¥Ú¡¼¥¸¤òÉü¸µ¤¹¤ë">
+ <input type="submit" name="revert" value="Éü¸µ">
+ <input type="submit" name="forget" value="´°Á´¤Ëºï½ü">
</form>|;
$wiki->set_title("ºï½ü¤µ¤ì¤¿¥Ú¡¼¥¸");