#!/usr/local/bin/perl #------------# # 基本設定 # #------------# # 外部ファイル取り込み require './cgi-lib.pl'; require './jcode.pl'; # ログファイル $logfile = './topics.dat'; # テンプレート $tmpfile = './tmp_list.html'; # 画像ディレクトリとそのURL $imgdir = './img/'; $imgurl = './img/'; # 1ページあたり表示件数 $pagelog = 5; # 戻り先URL $home = '../index.html'; # URLの自動リンク (0=no 1=yes)※これ意味わからん。 $autolink = 1; #--------------------# # フォーム読み込み # #--------------------# &decode; #●●●●●2011.06.17 0:23 PSK-NET●●●●● open BANNER_CONFIG1, "../../modules/banner_config.html"; @Banner_config = ; close BANNER_CONFIG1; foreach (@Banner_config) { chomp; $Banner_config .= "$_<->"; #●2011.09.19 22:49 PSK-NET(追加) } open GOOGLE1, "../../modules/analytics.html"; @Google = ; close GOOGLE1; foreach (@Google) { chomp; $Google .= "$_<->"; #●2011.09.19 22:49 PSK-NET(追加) } open HEADER1, "../../modules/header.html"; @Header = ; close HEADER1; foreach (@Header) { chomp; $Header .= "$_<->"; #●2011.09.19 22:49 PSK-NET(追加) } open SIDEMENU1, "../../modules/sidemenu.html"; @Sidemenu = ; close SIDEMENU1; foreach (@Sidemenu) { chomp; $Sidemenu .= "$_<->"; #●2011.09.19 22:49 PSK-NET(追加) } open FOOTER1, "../../modules/footer.html"; @Footer = ; close FOOTER1; foreach (@Footer) { chomp; $Footer .= "$_<->"; #●2011.09.19 22:49 PSK-NET(追加) } open SALEBANNER1, "../../modules/banner.html"; @Salebanner = ; close SALEBANNER1; foreach (@Salebanner) { chomp; $Salebanner .= "$_<->"; #●2011.09.19 22:49 PSK-NET(追加) } open TOPMENU1, "../../modules/contentsmenu.html"; @Topmenu = ; close TOPMENU1; foreach (@Topmenu) { chomp; $Topmenu .= "$_<->"; #●2011.09.19 22:49 PSK-NET(追加) } #●●●●●●●●●●●●●●●●●●●●●● #------------# # 記事表示 # #------------# local($flag,$msg,$i,$next,$back,$loop,@head,@loop,@foot); # HTMLヘッダ print "Content-type: text/html\n\n"; # テンプレート読み込み #▼変数の初期化 $loop=""; @head=(); @foot=(); $flag=0; #▼テンプレートファイルの読み込み open(IN,"$tmpfile") || &error("Open Error: $tmpfile"); #●●● 2011.06.30 11:12 PSK-NET ●●● while () { if (!$flag) { if(/●banner_config●/) { $Banner_config =~ s/<->/\n/g; #●2011.09.19 22:49 PSK-NET(追加) s/●banner_config●/$Banner_config/g; } if(/●google●/) { $Google =~ s/<->/\n/g; #●2011.09.19 22:49 PSK-NET(追加) s/●google●/$Google/g; } if(/●header●/) { $Header =~ s/<->/\n/g; #●2011.09.19 22:49 PSK-NET(追加) s/●header●/$Header/g; } if(/●topmenu●/) { $Topmenu =~ s/<->/\n/g; #●2011.09.19 22:49 PSK-NET(追加) s/●topmenu●/$Topmenu/g; } if(/●salebanner●/) { $Salebanner =~ s/<->/\n/g; #●2011.09.19 22:49 PSK-NET(追加) s/●salebanner●/$Salebanner/g; } if(/●sidemenu●/) { $Sidemenu =~ s/<->/\n/g; #●2011.09.19 22:49 PSK-NET(追加) s/●sidemenu●/$Sidemenu/g; } push(@head,$_) ; } if (//) { $flag=1; } elsif (//) { $flag=2; } if ($flag == 1) { s/\n//g; $loop .= $_; } elsif ($flag == 2) { if(/●footer●/) { $Footer =~ s/<->/\n/g; #●2011.09.19 22:49 PSK-NET(追加) s/●footer●/$Footer/g; } push(@foot,$_); } } #●●●●●●●●●●●●●●●●●●● close(IN); #▼記事データ読み込み @loop=(); open(IN,"$logfile") || &error("Open Error: $logfile"); while () { $i++; last if ($i > $pagelog); #指定したページログ表示数に達したら記事データ読み込みループを抜ける。 #▼「$loop」は「line1」のテンプレートデータ、これを$mesに代入して、下記で生成し、@loop配列に入れていく。 $msg = $loop; ($no,$date,$sub,$com,$t[0],$w[0],$h[0],$t[1],$w[1],$h[1],$t[2],$w[2],$h[2]) = split(/<>/); # URLリンク &auto_link($com) if ($autolink); $msg =~ s/!subject!/$sub/i; $msg =~ s/!date!/$date/i; $msg =~ s/!date2!/$date/i; $msg =~ s/!comment!/$com/i; $msg =~ s/!Number!/$no/i; # 画像 foreach $i (0 .. 2) { $j = $i + 1; $image = "!image-$j\!"; if (!$t[$i]) { $msg =~ s/$image//i; next; } # if ($h[$i] && $w[$i]) { $wh = "width=$w[$i] height=$h[$i]"; } ■元記述 if ($h[$i] && $w[$i]) { $wh = "width=80 height=53"; } else { $wh=""; } # $msg =~ s|$image||i; $msg =~ s|$image||i; } push(@loop,$msg); } close(IN); #▼ヘッダ表示 foreach (@head) { if(/\<\!-- line_sub --\>/) { s/\<\!-- line_sub --\>/$sub/g; } print; } #▼記事部表示 print @loop; #▼フッタ表示 foreach (@foot) { if(/\<\!-- line_sub --\>/) { s/\<\!-- line_sub --\>/$sub/g; } print; } exit; #====[Sub Routine]==== ====[Sub Routine]==== ====[Sub Routine]==== ====[Sub Routine]==== ====[Sub Routine]==== ====[Sub Routine]==== ====[Sub Routine]==== #--------------# # エラー処理 # #--------------# sub error { &header; print <<"EOM";

ERROR !

$_[0]

EOM print &HtmlBot; exit; } #-----------------# # 自動URLリンク # #-----------------# sub auto_link { $_[0] =~ s/([^=^\"]|^)(https?\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1$2<\/a>/g; } #--------------# # HTMLヘッダ # #--------------# sub header { if ($headflag) { return; } print "Content-type: text/html\n\n"; print <<"EOM"; $ver EOM $headflag=1; } #----------------# # デコード処理 # #----------------# sub decode { local($key,$val); &ReadParse; while ( ($key,$val) = each %in ) { if ($key !~ /^upfile/) { # シフトJISコード変換 &jcode'convert(*val, 'sjis'); # タグ処理 $val =~ s/<>/<>/g; $val =~ s/&/&/g; $val =~ s/"/"/g; $val =~ s//>/g; # 改行処理 if ($key eq "comment") { $val =~ s/\r\n/
/g; $val =~ s/\r/
/g; $val =~ s/\n/
/g; } else { $val =~ s/\r//g; $val =~ s/\n//g; } } $in{$key} = $val; } $mode = $in{'mode'}; $page = $in{'page'}; } __END__