kamarin CGIスクリプト再配布室
 

 

ゆいのHP更新マネージャー0.2 の設定方法


[設定方法]

スクリプトをエディタで開き、下記緑色文字の部分を赤字の説明に従って修正してください。

パーミッションの設定は、次のとおりです。

mdfy.cgi = 755


#!/usr/local/bin/perl ←お使いのサーバーに合わせてください。(ほとんどの場合、これでOKです)

#
#ゆいのHP更新マネージャー0.2(mdfy.cgi)
#1997.10.11製作
#すくりぷと ばい ゆいちゃっと 
#         Since 1996
#フリーウェアですが、yui@cup.comに連絡くださると嬉しいです。
#http://www.a-web.co.jp/~yui/にリンクしてくださるともっと嬉しいですぅ。

#設置方法:
#mdfy.cgi(755)のみです。
#init内で表示したいファイルなどを設定します。
#
#SSIで取り込ませたい場合は、sub html内の
#
#print "Content-type: text/html\n\n";と
#print <<"_HTML_";から_HTML_までを削除します。
#
&init;&jikan;
&html;
exit;

sub init{ #初期設定など

#hotlistに秒単位で区切りとなる時間を指定する。
#0の場合のみ、すべてのファイルの更新状況を忠実に表示。
#一時間以内に更新されたファイルのみ時刻を表示させるなら、1*60*60...つまり3600(秒)にする。
$hotlist = 1*60*60;

#http://www.test.or.jp/~yui/mdfy.cgi?86400のようなアクセスの場合、
#hotlist値を86400に変更。
$hotlist = $ENV{'QUERY_STRING'} if($ENV{'QUERY_STRING'} && ($ENV{'QUERY_STRING'} !~/\D/));

$omit = 0;#omit値を1にすると、更新されていないファイルも一応表示する。

#ホームページ用ディレクトリまでのフルパス
$basedir = './'; 
←ご自分のホームページのディレクトリまでを記入。

# 戻り先
$home = "./index.htm"; 
←ご自分のホームページの戻り先のページまでを記入。

#__END__の後ろに以下の要領で項目を3つずつ:#で区切って加えるだけでOK。
#記載例:/index.htm:#インデックスページ:#http://www.******.ne.jp/****/index.htm:# 
←以下の要領で、__END__の後に記入。(実際に追加・修正する箇所は最下方です

#@更新を表示させたいファイル名:#Aページ名:#Bジャンプする場合のリンク先:#
#@の説明= /index.htm:サーバ上でのファイル名($basedir の続きになるようにします。URLではないので注意。)
#Aの説明=
インデックスページ:ファイル名の代用。HTMLに表れる(ページタイトル)
#Bの説明=
http://www.******.ne.jp/****/index.htm :ジャンプ(リンク)する場合のリンク先(省略可)

}#init END

sub jikan{#$dateに時刻を代入します。
$ENV{'TZ'} = 'JST-9';$times = time;
($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime($times);
$min = "0$min" if ($min < 10); $month++;
$youbi = ('日','月','火','水','木','金','土') [$wday];
$today = "$month月$mday日";
$date = "$month/$mday($youbi)$hour:$min";
}#jikan END

sub html{
print "Content-type: text/html\n\n";
print <<"_HTML_";
<HTML><HEAD><TITLE>kamarinのHP更新マネージャー</TITLE></HEAD> 
←表示させたいタイトル名(ページ名)に変更します。
<BODY BACKGROUND="../home/background/b4_2b.gif"> 
←壁紙を使う場合、ファイル名を指定します。(お使いの環境に合わせて、パスを通してください。なお、壁紙を使用しない場合はこの行を消します)
<BODY BGCOLOR="#FFFFFF" TEXT="#004000" LINK="#FF00FF" VLINK="#0000ff" ALINK="#00FFFF"> 
←前行の壁紙を使用しない場合に、代わりの背景色を指定します。
<BR>

[<a href="$home" target="_top">ホーム</a>] 
←表示させたい戻り先のページ名等に変更します。(例:TOPに戻る 等)

<CENTER>
<IMG src="http://www.kamarin.com/link/banner/ani-11.gif"> 
←タイトル画像を使用する場合に、そのファイル名を指定します。
<BR>
<BR>
<FONT size="3" color="#66CC00"><STRONG>kamarinのホームページ</STRONG></FONT> 
←タイトル名を表示する場合に、その文字の大きさ・文字色・内容を記入します。
<BR>

<BR>
<FONT size="6" color="#993366"><STRONG>更 新 情 報</STRONG></FONT> 
←前記と同様。(どちらか一方でも可、その場合は<BR>2行を含めて、どちらかの行を削除してください。)
<BR>
<BR>
<FONT size="5" color="#FF3399"><STRONG>$date現在の更新状況です。</STRONG></FONT>
</CENTER>
<BR>
<BR>
<hr>
<BR>
<BR>
<CENTER>
[<A HREF="./mdfy.cgi?3600">過去1時間以内</A>][<A HREF="./mdfy.cgi?86400">過去1日以内</A>][<A HREF="./mdfy.cgi?604800">過去1週間以内</A>][<A HREF="./mdfy.cgi?2592000">過去1ヶ月以内</A>][<A HREF="./mdfy.cgi?100000000">全て</A>]
</CENTER>
<BR>
<BR>

<CENTER>
※ 時間を指定して更新状況を見ることもできます。
</CENTER>
<BR>
<BR>

<CENTER><TABLE BORDER=1 bgcolor="#F9FFFF"><TR><TD>選択期間内に更新されたページ</TD><TD>更新日又は時刻</TD></TR> 
←更新状況表示枠の中の背景色を指定します。
_HTML_
@lines=<DATA>;
foreach $line(@lines) {
next unless($line=~/:#/);
&filecheck;
}

print <<"_HTML_";
</TABLE></CENTER>
<BR>
<BR>

<HTML><hr><H5 ALIGN=right><A HREF="http://www.cup.com/yui/">Copyright by Yui</A><BR><BR><A HREF="http://www.kamarin.com/">Arranged by Kamarin</A></H5></BODY></HTML> 
Copyrightです。削除や修正をしないでください。

_HTML_
}#html END


sub filecheck{
$line =~s/\n//g;
($file, $name,$link) = split(/:#/, $line);
$file="${basedir}${file}";
unless(-e "$file"){
print "<TR><TD NOWRAP>$name</TD><TD NOWRAP>Not Found</TD></TR>\n";
return;
}
$filedata = -M "$file";#ファイルの修正後経過した時間を得る。単位は日。
$filedata = $filedata*24*60*60;#経過時間を何日から何秒へ変換。

#hotlistが0でない場合で、hotlist値より長く経過したファイルは表示しない。
#return if ($hotlist && ($filedata > $hotlist) );

#$filedataから実際の更新時刻を割り出す。
($sec,$min,$hour,$mday,$month,$year,$wday,$yday,$isdst) = localtime($times-$filedata);
$sec = "0$sec" if ($sec < 10);$min = "0$min" if ($min < 10);$month++;
if($today ne "$month月$mday日"){$filedates = "$month月$mday日";
}else{$filedates = " $hour時$min分";}

#ファイル更新状況を表示。(ここでは、テーブルタグを使用しています。)
if(($hotlist == 0) || ($filedata < $hotlist)){
if($link){#リンク先が定義されている場合はリンクする。
print "<TR><TD NOWRAP><A HREF=\"$link\">$name</A></TD><TD NOWRAP>$filedates</TD></TR>\n";
}else{
print "<TR><TD NOWRAP>$name</TD><TD NOWRAP>$filedates</TD></TR>\n";
}
}elsif($omit){
if($link){#リンク先が定義されている場合はリンクする。
print "<TR><TD NOWRAP><A HREF=\"$link\">$name</A></TD><TD NOWRAP>更新されていません。</TD></TR>\n";
}else{
print "<TR><TD NOWRAP>$name</TD><TD NOWRAP>更新されていません。</TD></TR>\n";
}
}

}#filecheck END

__END__
/index.htm:#トップページ:#http://www.kamarin.com/index.htm:# 
←ここから下へ、前述の要領で更新状況を表示させたいページを1行ずつ追加していきます。
(記載例)
/index.htm:#トップページ:#http://www.******.ne.jp/****/index.htm:#
/menu.htm:#メニュー:#http://www.******.ne.jp/****/menu.htm:#
/profile.htm:#プロフィール:#http://www.******.ne.jp/****/profile.htm:#
以下同様に追加。