LinkBanner.pm - Respond for CGI as the link banner image or the links page of referers

Access counter


NAME

LinkBanner.pm - LinkバナーもしくはLinkペイヂを出力するCGI用module

$Id: LinkBanner.pm,v 1.1 2000/12/20 14:41:39 shige Exp $


SYNOPSIS

バナーを返し、その参照元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();


DESCRIPTION

自動的にlinkペイヂを作成する。 もし、Webコンテンツがこのmoduleを使用したCGI programを参照したならば、CGI programはバナー画像を返す。 その時、参照したペイヂのaddressを記録する。 linkペイヂを要求された時、その記録からlinkペイヂを作成する。


METHOD

new([$logpath ,$query])

新しいインスタンスの作成

        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);

RecordLog($logpath)

参照元情報をfileへ記録する

        $banner->RecordLog();

or

        $banner->RecordLog(C<$logpath>);

OutBanner($img_file [,$lifetime ,$basetime])

指定したバナーを出力する。 $img_fileにはバナー画像のファイルを指定する。

$lifetimeはバナー画像のキャッシュ時間を指定する。 $basetimeはバナー画像の生成された時間を指定する。

        $banner->OutBanner("/home/foo/public_html/image.gif");

OutLinkPage([$ra_sorteddata, $rs_template])

Linkペイヂをログfileから作成し出力する。 $ra_sorteddataはログfileの情報をoverrideする。

        $banner->OutLinkPage();

deny($filename)

Linkを拒否するaddressを記述したfile名を指定する。 これは参照元addressを排除する為に使われる。 このfileのそれぞれの行は`|'で連結されaddressとマッチするかどうかが確認される。 `\'によるマッチ式のエスケープ処理は自動的に行われる。

        $banner->deny("/home/foo/public_html/deny_list.txt");

Link拒否addressの記述例

        http://localhost
        http://www.denied.com

debug($debug_opt)

デバッグオプションの設定

        $banner->debug('template');

デバッグメッセージは標準エラー出力に出力される。 STDERRをdebuglog.plやその他の方法でリダイレクトする事により記録する事ができる。

デバッグが完了すれば、デバッグコードをこのmoduleから削除する事ができる。 全てのデバッグコードは`#>>>DEBUG_CODE'の間にある。 これらはstriper.plによって削除できる。

query

CGI query stringのデバッグ

sortedlist

Link cache fileの作成についてのデバッグ

ignore

レコードのフィルタリング処理についてのデバッグ

template

Template fileの展開処理についてのデバッグ

escape

CGI parameterのエスケープ処理についてのデバッグ

logfile

ログ記録についてのデバッグ

GetTemplateOfLinkPage([$rs_buffer, $template,])

Linkペイヂのtemplateを得る。 デフォルトではログfileのpathにある`template.html'となる。

OutLinkpageの引数となる template bufferの参照を指定する。 $templateは template file名を指定する。


Require modules

strict.pm, Carp.pm, File::Basename, URI::Escape, CGI timestr.pl, regexpr.pl, jcode.pl


Link bannerの記述方法

例えば次のようにペイヂに記述する

        <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 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>


AUTHOR

Tetsuya Shigetome, <t_shigetome@muf.biglobe.ne.jp >.


HISTORY

$Revision: 1.1 $

$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