#!/usr/bin/perl #┌───────────────────────────────── #│ [ YY-BOARD ] #│ read.cgi - 2007/09/17 #│ Copyright (c) KentWeb #│ webmaster@kent-web.com #│ http://www.kent-web.com/ #└───────────────────────────────── # 外部ファイル取込 require './init.cgi'; require $jcode; # メイン処理 &decode; &axsCheck; &read_log; #------------------------------------------------- # 記事個別閲覧 #------------------------------------------------- sub read_log { # 記事を展開 local($data,@tree); open(IN,"$logfile") || &error("Open Error: $logfile"); my $top = ; while () { my ($no,$reno,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$col,$ico) = split(/<>/); if ($in{'no'} == $no) { $data = $_; } if ($in{'no'} == $no || $in{'no'} == $reno || ($in{'top'} && ($in{'top'} == $no || $in{'top'} == $reno))) { push(@tree,$_); } } close(IN); if (!$data) { &error("不明なアクセスです"); } # ヘッダを出力 if ($ImageView == 1) { &header('ImageUp'); } else { &header; } # タイトル部 print qq|
\n|; if ($banner1 ne "") { print "$banner1

\n"; } if ($t_img eq '') { print qq|$title\n|; } else { print qq|$title\n|; } print < [リストに戻る] [ホームに戻る] EOM if (!$in{'list'}) { $in{'list'} = 'thread'; } if ($in{'list'} ne "thread") { print qq|[新規投稿]\n|; } foreach ( 'thread', 'tree', 'topic' ) { next if ($in{'list'} eq $_); print qq|[$list_type{$_}]\n|; } print <留意事項] [ワード検索] EOM # 過去ログのリンク部を表示 if ($pastkey) { print qq|[過去ログ]\n|; } print <管理用]


EOM # 記事一括のとき if ($mode eq "all") { &all_list; } # 閲覧記事 my ($no,$reno,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$col,$ico) = split(/<>/, $data); # 整形 if ($eml) { $eml = qq| <$eml>|; } if ($url) { $url = qq|$url|; } print <
タイトル$sub
投稿日: $dat
投稿者$nam $eml
参照先: $url

EOM # 記事 if ($iconMode) { print qq|\n|; print qq|\n|; print qq|
$com
\n|; } else { print qq|

\n|; print qq|$com\n|; } print < - 関連ツリー

EOM # 関連ツリー my $i = 0; local($oya,$resub); foreach (@tree) { $i++; my ($no,$reno,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$col,$ico) = split(/<>/); if ($reno && $i == @tree) { print " " x 5; print "└ "; } elsif ($reno && $i > 1) { print " " x 5; print "├ "; } my $param; if ($reno) { $param = "&top=$reno"; } else { $oya = $no; $resub = $sub; } # 親 if (!$reno) { print qq| |; } print qq|$sub - $nam $dat No.$no
\n|; } &reply_form; } #------------------------------------------------- # 記事一括閲覧 #------------------------------------------------- sub all_list { print < EOM # 関連ツリー my $i = 0; local($oya,$resub,$list); foreach (@tree) { $i++; my ($no,$reno,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$col,$ico) = split(/<>/); if ($reno && $i == @tree) { print " └ "; } elsif ($reno && $i > 1) { print " ├ "; } my $param; if ($reno) { $param = "&top=$reno"; $oya = $reno; } else { $oya = $no; $resub = $sub; } # ツリー表示 print qq|$sub - $nam $dat No.$no
\n|; # e-mailリンク if ($eml) { $nam = "$nam"; } # 親記事 $list .= qq|

\n|; $list .= qq|\n|; $list .= qq|
\n|; $list .= qq|$sub |; $list .= qq|投稿者:$nam 投稿日:$dat |; $list .= qq|No.$no |; if ($url) { $list .= qq|home|; } $list .= qq|
\n|; if ($iconMode) { $list .= qq|\n|; $list .= qq|\n|; $list .= qq|
$com
\n|; } else { $list .= qq|
\n|; $list .= qq|$com
\n|; } $list .= qq|

\n|; } print $list; &reply_form; } #------------------------------------------------- # 返信専用フォーム #------------------------------------------------- sub reply_form { print <
- 返信フォーム

EOM # クッキー取得 local($cnam,$ceml,$curl,$cpwd,$cico,$ccol) = &get_cookie; if (!$curl) { $curl = 'http://'; } # タイトル名 if ($resub !~ /^Re\:/) { $resub = "Re: $resub"; } # 投稿フォーム print qq|

\n|; print qq|\n|; print qq|\n|; print qq|\n|; print qq|\n|; # 投稿キー local($str_plain,$str_crypt); if ($regist_key) { require $regkeypl; ($str_plain,$str_crypt) = &pcp_makekey; } # フォーム require $formpl; &form($cnam,$ceml,$curl,$cpwd,$cico,$ccol,$resub,''); print "
\n"; # ユーザメンテフォーム(トピック表示の場合) if ($in{'list'} eq "topic") { print qq|
- 記事修正&削除フォーム\n|; print qq|
\n|; print qq|\n|; print qq|処理 \n|; print qq|No.\n|; print qq|暗証キー\n|; print qq|
\n|; } print < EOM exit; }