############################################################################### # # ログファイルを管理するモジュール # ############################################################################### package plugin::admin::AdminLogHandler; use strict; #============================================================================== # コンストラクタ #============================================================================== sub new { my $class = shift; my $self = {}; return bless $self,$class; } #============================================================================== # アクションハンドラメソッド #============================================================================== sub do_action { my $self = shift; my $wiki = shift; my $cgi = $wiki->get_CGI; my $login = $wiki->get_login_info(); if($cgi->param("delete")){ return $self->delete_log($wiki); } elsif($cgi->param("download")){ $self->download_log($wiki); } elsif($cgi->param("deletecache")){ return $self->delete_cache($wiki); } else { return $self->log_info($wiki); } } #============================================================================== # ログファイルの情報を表示 #============================================================================== sub log_info { my $self = shift; my $wiki = shift; my $buf = ""; $wiki->set_title("ログファイルの管理"); $buf .= $self->make_log_form($wiki,"アクセスログ","access"); $buf .= $self->make_log_form($wiki,"添付ファイルのログ","attach"); $buf .= $self->make_log_form($wiki,"添付ファイルダウンロード数のログ","download"); $buf .= "
※このログファイルを削除すると添付ファイルのダウンロード数がクリアされます。
\n"; $buf .= $self->make_log_form($wiki,"ページ凍結のログ","freeze"); $buf .= "※このログファイルを削除すると全てのページ凍結が解除されます。
\n"; # キャッシュファイルの情報 $buf .= "キャッシュファイルはありません。
\n"; } else { $buf .= "".&Util::escapeHTML($file)."(".$size."KB)
\n". "\n"; } else { $buf .= "ログファイルはありません。
\n"; } return $buf; } #============================================================================== # ログファイルを削除 #============================================================================== sub delete_log { my $self = shift; my $wiki = shift; my $target = $wiki->get_CGI->param("target"); my $file = $self->get_filename_from_target($wiki,$target); if($file eq ""){ return $wiki->error("パラメータが不正です。"); } unlink($wiki->config('log_dir')."/$file") or die $file."の削除に失敗しました。"; return $wiki->redirectURL($wiki->config('script_name')."?action=ADMINLOG"); #$wiki->set_title("ログファイルの管理"); #return "ログファイルを削除しました。
\n". # "[config('script_name')."?action=ADMINLOG\">戻る]
\n"; } #============================================================================== # ログファイルをダウンロード #============================================================================== sub download_log { my $self = shift; my $wiki = shift; my $target = $wiki->get_CGI->param("target"); my $file = $self->get_filename_from_target($wiki,$target); if($file eq ""){ return $wiki->error("パラメータが不正です。"); } print "Content-Type: text/plain\n"; print "Content-Disposition: inline;filename=\"".&Jcode::convert($file,"sjis")."\"\n\n"; open(LOG,$wiki->config('log_dir')."/$file") or die $file."のオープンに失敗しました。"; binmode(LOG); while(キャッシュファイルを削除しました。
\n". # "\n"; } 1;