#!/usr/bin/perl # ======================================================= # CGI Program: list.cgi - # ウェブトーク(記事リスト表示プログラム) # (C)1998 Winning Ride. # (WinningRide@sophias.com) # ======================================================= # シグナルハンドラ $SIG{'HUP'} = $SIG{'INT'} = $SIG{'QUIT'} = $SIG{'TERM'} = $SIG{'TSTP'} = 'abort'; BEGIN { require './custom.ph'; unshift(@INC,$LibPath); # 早くするためのおまじない } use CGI qw(:standard :html3); use CgiDesign($design_filename); use CgiLock($locktype); $query = new CGI; shlock($lockfile) || err('ロックに失敗しました。しばらくお待ちください。'); open(IN,$dataheader) || open(IN,'>'.$dataheader) || err 'ヘッダファイルが開けません'; $listtop = GetParam('LISTTOP'); $header = GetParam('LISTCOLUMN'); $listbottom = GetParam('LISTBOTTOM'); $writeform = GetParam('WRITEFORM'); $pagetop = GetParam('PAGETOP'); $pagebottom = GetParam('PAGEBOTTOM'); converts(\$pagetop,$basecode); converts(\$pagebottom,$basecode); converts(\$listtop,$basecode); converts(\$listbottom,$basecode); converts(\$header,$basecode); converts(\$writeform,$basecode); @list = ; $lists = @list; $listnum = $query->param('num'); $listnum = $default_listnum if($listnum == 0); $start = $query->param('start'); $nowlist = $lists - $start; if($nowlist < 0) { $nowlist = $listnum; } if($start >= $listnum) { my $nextstart = $start - $listnum; if($nextstart < 0) { $nextstart = 0; } $nextarticle = GetParam('NEXTARTICLE'); my $link = "$script_names{'list'}?start=$nextstart"; if($listnum != $defaultlistnum) { $link .= "&num=$listnum"; } $nextarticle =~ s/\$link/$link/g } if($nowlist - $listnum > 0) { my $nextstart = $start + $listnum; $prevarticle = GetParam('PREVARTICLE'); my $link = "$script_names{'list'}?start=$nextstart"; if($listnum != $defaultlistnum) { $link .= "&num=$listnum"; } $prevarticle =~ s/\$link/$link/g } $lastlist = $lists - $start - $listnum; $lastlist = 0 if($lastlist < 0); print header; print start_html(-title=>"$boardtitle", -bgcolor=>"$bgcolor", -text=>"$font_color"); print $pagetop; $listtop =~ s/\$nextarticle/$nextarticle/g; print $listtop; while($nowlist > $lastlist) { $nowlist--; $_ = $list[$nowlist]; if(/^[0-9]+\t/) { chop; @head = split(/\t/); $date = GetDate($head[1]); $subject = $head[4]; $name = $head[2]; $link = "$script_names{'view'}?n=".$head[0]; $num = $head[0]; $email = $head[3]; convertall($basecode,\$subject,\$name); $headtext = $header; $headtext =~ s/\$link/$link/g; $headtext =~ s/\$num/$num/g; $headtext =~ s/\$date/$date/g; $headtext =~ s/\$subject/$subject/g; $headtext =~ s/\$name/$name/g; $headtext =~ s/\$email/$email/g; print $headtext; } } $listbottom =~ s/\$prevarticle/$prevarticle/g; print $listbottom; print "
\n"; $writeform =~ s/\$writescript/$script_names{'write'}/g; print $writeform; print $pagebottom; close(IN); unlock($lockfile); print $query->end_html;