LinkBanner.pm - Respond for CGI as the link banner image or the links page of referers |
LinkBanner.pm - LinkバナーもしくはLinkペイヂを出力するCGI用module
$Id: LinkBanner.pm,v 1.1 2000/12/20 14:41:39 shige Exp $
バナーを返し、その参照元addressを記録します。 参照元の情報はlinkリストを作成するときに使用されます。
use LinkBanner; my($banner) = new LinkBanner("/home/foo/public_html/log_path/"); $banner->RecordLog(); $banner->OutBanner("/home/foo/public_html/cgi-bin/testbanner.jpg");
use LinkBanner; my($banner) = new LinkBanner("/home/foo/public_html/log_path/"); $banner->deny("/home/foo/public_html/deny_list.txt"); $banner->OutLinkPage();
自動的にlinkペイヂを作成する。 もし、Webコンテンツがこのmoduleを使用したCGI programを参照したならば、CGI programはバナー画像を返す。 その時、参照したペイヂのaddressを記録する。 linkペイヂを要求された時、その記録からlinkペイヂを作成する。
新しいインスタンスの作成
my($banner) = new LinkBanner;
or
my($logpath) = "/home/foo/public_html/log_path/"; my($banner) = new LinkBanner($logpath);
or
my($logpath) = "/home/foo/public_html/log_path/"; my($query) = new CGI; my($banner) = new LinkBanner($logpath,$query);
参照元情報をfileへ記録する
$banner->RecordLog();
or
$banner->RecordLog(C<$logpath>);
指定したバナーを出力する。 $img_file
にはバナー画像のファイルを指定する。
$lifetime
はバナー画像のキャッシュ時間を指定する。
$basetime
はバナー画像の生成された時間を指定する。
$banner->OutBanner("/home/foo/public_html/image.gif");
Linkペイヂをログfileから作成し出力する。
$ra_sorteddata
はログfileの情報をoverrideする。
$banner->OutLinkPage();
Linkを拒否するaddressを記述したfile名を指定する。 これは参照元addressを排除する為に使われる。 このfileのそれぞれの行は`|'で連結されaddressとマッチするかどうかが確認される。 `\'によるマッチ式のエスケープ処理は自動的に行われる。
$banner->deny("/home/foo/public_html/deny_list.txt");
Link拒否addressの記述例
http://localhost http://www.denied.com
デバッグオプションの設定
$banner->debug('template');
デバッグメッセージは標準エラー出力に出力される。 STDERRをdebuglog.plやその他の方法でリダイレクトする事により記録する事ができる。
デバッグが完了すれば、デバッグコードをこのmoduleから削除する事ができる。 全てのデバッグコードは`#>>>DEBUG_CODE'の間にある。 これらはstriper.plによって削除できる。
CGI query stringのデバッグ
Link cache fileの作成についてのデバッグ
レコードのフィルタリング処理についてのデバッグ
Template fileの展開処理についてのデバッグ
CGI parameterのエスケープ処理についてのデバッグ
ログ記録についてのデバッグ
Linkペイヂのtemplateを得る。 デフォルトではログfileのpathにある`template.html'となる。
OutLinkpage
の引数となる template bufferの参照を指定する。
$templateは template file名を指定する。
strict.pm, Carp.pm, File::Basename, URI::Escape, CGI timestr.pl, regexpr.pl, jcode.pl
例えば次のようにペイヂに記述する
<IMG SRC="http://www.any.com/~foo/cgi-bin/linkbanner.cgi?title=title%20of%20your%20page;topic=topic%20of%20your%20page" ALT="Link banner">
`title%20of%20your%20page
'や`topic%20of%20your%20page
'の
フィールドはペイヂに合わせて変更する。
HTML tagは使用できない
Template file `template.html'はlog fileのパスに置く
template.html の例...
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"> <HTML lang="ja"> <HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS"> <TITLE>Links page</TITLE> </HEAD> <BODY> <H1>Links page</H1> <HR> <TABLE border="1" cellspacing="0"> <THEAD> <TR> <TH>Title</TH><TH>topic</TH> </TR> </THEAD> <TBODY> <!-- Following comment statement will be replaced to link list. You can customize that. These keywords will be handled about specified link banner parameter. Like as...
%referer% : URL of linked content that will reference the link banner. %title% : Title of linked page %topic% : Topic of linked page --> <!-- __Links_Replace_to_Here__ <TR><TD><A HREF="%referer%">%title%</A></TD><TD>%topic%</TD></TR> --> </TBODY> </TABLE> <HR> </BODY> </HTML>
Tetsuya Shigetome, <t_shigetome@muf.biglobe.ne.jp >.
$Log: LinkBanner.pm,v $ Revision 1.1 2000/12/20 14:41:39 shige
First release of LinkBanenr
LinkBanner.pm - Respond for CGI as the link banner image or the links page of referers |