表紙 | 新規 | 編集 | 編集 | 差分 | 一覧 | RSS | 検索 | 閲覧履歴 | 作成履歴 | 更新履歴

print_footer関数 - YukiWikiベースのPonyWikiのソースを読んでみる その16

YukiWikiベースのPonyWikiのソースを読んでみる その16

ページのフッタ部分の表示とカウンタ(こっそりと)表示。カウンタ部分がかなりキタナイので、そのうち書き直したいです。

処理の流れはこんな感じです。

sub print_footer {
    my ($page) = @_;
#カウンタの設定
    my $dir = '.';
    my $countername = 'cnt.txt';
    my $datafile = "$dir/$countername";
    my $remote_ip_file = "$dir/$countername.ip";
    my $count;

    # データファイルのオープン
    if (!open(OUT, "+<$datafile")) {
        print "???";
    }
    if (!open(IPOUT, "+<$remote_ip_file")) {
        print "xxx";
    }

    # IPアドレスが同じなら表示だけする、違ったら増加
    if ($ENV{'REMOTE_ADDR'} == <IPOUT>) {
        seek(OUT, 0, 0);
        $count = <OUT>;
    } else {
        # カウンタ値増加
        seek(OUT, 0, 0);
        $count = 1 + <OUT>;
        seek(OUT, 0, 0);
        print OUT "$count\n";
    }
    # カウンタ後処理
    close(OUT);
    seek(IPOUT, 0, 0);
    print IPOUT $ENV{'REMOTE_ADDR'};
    close(IPOUT);


    print <<"EOD";
</div>
<div class="partinfo"><a class="partedit" title="$resource{returntop}" href="#top">$resource{returntop}</a></div>
<hr>
<address class="footer">
    <a href="http://you-like.to/cgi-bin/ponytail/yukiwiki/wiki.cgi">[[PonyWiki]]</a> ver $version &copy; 2004 by <a href="http://you-like.to/cgi-bin/ponytail/yukiwiki/wiki.cgi">Kisara</a>.<br />
    based on <a href="http://www.hyuki.com/yukiwiki/">YukiWiki</a> $orgversion
    (C) 2000-2004 by <a href="http://www.hyuki.com/">Hiroshi Yuki</a>.<br />
    Modified by <a href="$modifier_url">$modifier_name</a>.
</address>
<p class="footer">
$icontag <br>
<font color="000000">$count</font>
</p>
</body>
</html>
EOD
}

''TrackBack'' - http://you-like.to/cgi-bin/ponytail/yukiwiki/wiki.cgi/print_footer%b4%d8%bf%f4

先頭へ