ACESギルド
TOP GUILD member bbs link
調整中 | 


メインBBS
メインのBBSです。
一時休止中です。

設定変更

変更があれば書換え、追加があれば空欄に書き込んでください。
五個以上の追加がある場合は、一旦更新してください。
削除したい項目はIDまたは表\示期間を空欄にしてください。
エラーがあっても設定ファイルはその通りに書き換えています

__HTML print "

$info_file に $check_rc個のエラーがあります

" if($check_rc); print <<"__HTML";

調査ファイルの設定

__HTML if($check_rc) { print "\n\n"; } else { print " "; } my $ix = 0; foreach $id (sort keys %file_path) { my $tags = $file_form{$id}; &tag_esc(\$tags); print qq|\n|; print qq|\n|; print qq|\n|; print qq|\n|; print qq|\n|; print qq|\n| if($check_rc); print qq||; $ix++; } for($addcount = $ix+5;$addcount > $ix;$ix++) { print qq|\n|; print qq|\n|; print qq|\n|; print qq|\n|; print qq|\n|; print qq|\n| if($check_rc); print qq||; } print <<"__HTML";
ID ファイルのパス 表\示モード 日時の表\示形式ERROR
$err_msg{$id}
| . qq| | . qq|  
ID
識別するための名前
Javascriptの変数として、SSIモードで起動時の識別子として使用
半角の英数字及びアンダーバー(一文字目は英字)
この欄を空欄にした項目は削除されます
この一覧表\はID順に並んでいます
同じIDを追加しようとすると、エラーにはならずに上書きされます
ファイルのパス
調査対象のファイルのパス
$cgi_nameからアクセス可能\な相対パス
パスの末尾をディレクトリ名にすると配下のファイル、ディレクトリの全てが調査対象になる
表\示モード
調査結果の表\示形態
N:新着表\示 / D:日時を表\示 / ND:新着表\示(新着期間を過ぎたら日時表\示)
日時の表\示形式
日時の表\示フォーマットの定義
以下の英字を実際の日時に置き換える
  • YYYY:西暦4桁
  • YY:西暦下2桁
  • MM:月
  • DD:日
  • WE:曜日(英語略記 Mon,Tue,・・・)
  • WJ:曜日(漢字表\記 月,火,・・・)
  • hh:時間
  • mm:分
  • ss:秒
省略時は 「YYYY/MM/DD(WE) hh:mm:ss」と指定されたものとする
タグも有効 例 → 「YYYY年MM月DD日WJ曜日 <small>hh:mm</small>」

ファイルが無い場合のメッセージ

(タグ有効)


更新日時の表\示期間

秒 $err_msg{"date_limit"}

表\示モード=N又はNDの場合で、一定期間を過ぎた場合は日時の表\示も行いたくない場合、 その期間を指定する。期間の指定方法は「新着表\示タグの設定」の「表\示期間」に準じます。

0又は省略の場合は常に表\示します。


新着表\示タグの設定

__HTML if($check_rc) { print "\n\n"; } else { print " "; } for ($ix = 0;$new_range[$ix]; $ix++) { my $tags = $new_tag[$ix]; &tag_esc(\$tags); print qq|\n|; print qq|\n|; print qq|\n|; print qq|\n| if($check_rc); print qq|\n|; } for($addcount = $ix+5;$addcount > $ix;$ix++) { print qq|\n|; print qq|\n|; print qq|\n|; print qq|\n| if($check_rc); print qq||; } print <<"__HTML";
表\示期間 使用タグERROR
$err_msg{"$ix"}
 
表\示期間
新着表\示をする期間を秒数で指定する
(日数)*(時間)*(分)*(秒)等の数式で現す事も可能\
例 12時間以内 → 12 * 60 * 60
例 3日以内 → 3 * 24 * 60 * 60
例 3日と12時間以内 → ( 3 * 24 * 60 * 60 ) + ( 12 * 60 * 60 )
使用タグ
新着表\示するためのタグ等
例 <img src="http://〜〜/new.gif">

サーバ日時の調整

日時の調整 タイムゾーン
微調整 (+/- 秒)
現在の日時 $now_date


$copyright

__HTML } #################### # 管理モード(入室画面) #################### sub admin_in { $outdata =<<"__HTML"; $script_name 管理機能\

管理機能\

$_[0]
Password

$copyright

__HTML &c_header(length($outdata)); print $outdata; exit; } #################### # 設定ファイル読み込み #################### sub read_info { local @part,$range_count; open INFO,$info_file || &error("設定ファイル[$info_file]にアクセスできません"); while() { s/\r\n//g; s/\n//g; @part = split /\t/; if($part[0] eq 'files') { # ファイルリストの設定 $file_path{$part[1]} = $part[2]; $file_mode{$part[1]} = $part[3]; $file_form{$part[1]} = $part[4]; } elsif ($part[0] eq 'tags') { # 新着表示タグ $new_range[$range_count] = $part[1]; $new_tag[$range_count] = $part[2]; $range_count++; } elsif ($part[0] eq 'empty_msg') { $empty_msg = $part[1]; } elsif ($part[0] eq 'date_limit') { $date_limit = $part[1]; } elsif ($part[0] eq 'time') { # 日時の設定 $ENV{'TZ'} = $part[1]; $time_value = $part[2]; $time = time + $time_value; } } close INFO; } #################### # 設定ファイル書き出し #################### sub put_info { local $ix; open INFO,">$info_file" || &error("設定ファイル[$info_file]にアクセスできません"); # ファイルリストの書き出し while( ($id,$value) = each %file_path) { print INFO qq|files\t$id\t$value\t$file_mode{$id}\t$file_form{$id}\n|; } # 新着表示タグの書き出し for ($ix = 0;$new_range[$ix]; $ix++) { print INFO qq|tags\t$new_range[$ix]\t$new_tag[$ix]\n|; } # 日時の設定の書き出し print INFO qq|time\t$ENV{'TZ'}\t$time_value\n|; # Empty_msgの書き出し print INFO qq|empty_msg\t$empty_msg\n|; # Empty_msgの書き出し print INFO qq|date_limit\t$date_limit\n|; close INFO; } #################### # タグエスケープ #################### sub tag_esc { ${$_[0]} =~ s/&/&/g; ${$_[0]} =~ s//>/g; ${$_[0]} =~ s/"/"/g; ${$_[0]} =~ s/'/'/g; } #################### # 入力データの分解 #################### sub arg_decode { local($method) = $ENV{'REQUEST_METHOD'}; local($query, $key, $val); local(@query); # GET or POST if ($method eq 'GET') { $query = $ENV{'QUERY_STRING'}; } elsif ($method eq 'POST') { read(STDIN, $query, $ENV{'CONTENT_LENGTH'}); } if($query) { @query = split(/&/, $query); } else { @query = @ARGV; } # Name=Val を $in{'Name'} = 'Val' のハッシュにする。 foreach (@query) { # + を空白文字に変換 tr/+/ /; # Name=Val を分ける ($key, $val) = split(/=/); # %HH形式を元の文字にデコードする。 $key =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("c", hex($1))/ge; $val =~ s/%([A-Fa-f0-9][A-Fa-f0-9])/pack("c", hex($1))/ge; $val =~ s/\r\n/\n/g; # 日本語コードが指定されている場合は変換する。 jcode'convert(*key, 'sjis'); jcode'convert(*val, 'sjis'); $val =~ s/\t/ /g; # 連想配列(ハッシュ)にセット $in{$key} = $val; } } #################### # 日付の取得 #################### sub setdate { ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = localtime($time); $year += 1900; $mon = $mon + 1; $thisday = (Sun,Mon,Tue,Wed,Thu,Fri,Sat) [$wday]; return sprintf("%04d/%02d/%02d(%s)%02d:%02d:%02d", $year, $mon, $mday, $thisday, $hour, $min, $sec); } #################### # ERROR #################### sub error { $outdata =<<"__HTML"; $script_name ERROR

$script_name ERROR

$_[0]

$copyright

__HTML if($in{mode} eq 'j') { print "Content-Type: text/javascript\n"; print "Pragma: no-cache\n"; print "Cache-Control: no-cache\n\n"; print qq|document.write("$_[0]");\n|; } elsif($in{mode} eq 's') { &c_header; print $_[0]; } else { &c_header; print $outdata; } exit; } #################### # Content-header #################### sub c_header { print "Content-type: text/html; charset=Shift_JIS\n"; print "Content-Language: ja\n"; print "Pragma: no-cache\n"; print "Cache-Control: no-cache\n"; # print "Content-length: $_[0]\n" if($_[0]); print "\n"; }


ごめんなさい。調整中です・・。