#################################
#
# 12ch 各板の RSS (RSS2.0)出力
#
#
#1)私もまだ、使い込んでいません
# 自己責任でお使いください
#2)サポートは
# http://pc8.2ch.net/test/read.cgi/hp/1148148318/l50
# http://bbs.mitinoku.jp/m_support/
#
#################################
# 2007/06/01 Ver 1.0
#
#
#################################
# 12chに標準で組み込まれているjcode.plは,utf8に未対応です。
# その為、このプログラムで作成されるRSSファイルの文字コードはEUCとなってます。
# 一般にRSSファイルは文字コードとしてutf8が多いようですが、utf8が絶対ではありません。
# Sjisなどutf8以外のRSSもあります。
#
# jcode.plの後継jcode.pm(perl5以上)を使える方は
# Step2の部分の
# 3箇所ある #For UTF8 の下の行コメント(2行+2行+3行)を外すと
# UTF8になります
#
## Encode・・Perl5.8以降標準をご存知の方は、ご自由に
#
#
##################################
###●Step0 RewriteEngine(Mod Rewrite)
# .htaccessに下記2行を追加
RewriteEngine on
RewriteRule ^read/(.*)/(.*)/l(.*) read.cgi?bbs=$1&key=$2&ls=$3 [L]
注)
RewriteEngine(Mod Rewrite)が成功してる事を確認すること。
ここで http://〜〜〜/read/板名/スレナンバー/l50 と
http://〜〜〜/read.cgi?bbs=板名&key=スレナンバー&ls=50 が同じ事を確認
##########################################
###●Step1
#
bbs.cgiの改造
#
#----下記を探す(sub makeindexfile内)
#-------------------------------------
my @headlinehtml;
push (@headlinehtml, makesubback($bbs,@ThreadData));
OutputData(file => "./$bbs/subback.html", lock => $bbslockdir, data => \@headlinehtml) ;
#
#-- その下に下記4行追加を-------------
#
#RSS フィード 200706--------------------
my @rss;
push (@rss, makerssfeed($bbs,@ThreadData));
OutputData(file => "./$bbs/rss.xml", lock => $bbslockdir, data => \@rss) ;
##########################################
###●Step2
#
bbs.cgiの改造
一番下に追加
#-- 追加 ここから --------------------------
# RSSフィード(スレッド一覧)作成 200706
sub makerssfeed {
$rss_max = 20; #表示件数の最大値
$rss_encode = "euc-jp"; #default encode
#For UTF8
# $rss_encode = "UTF-8";
# require Jcode; #jcode.pm
my ($bbs,@td) = @_;
my ($ipath,$ibase,$iext) = SplitFileName($ENV{SCRIPT_NAME});
my @t = localtime($time);
my($r_year,$r_mon,$r_mday,$r_hour,$r_min,$r_sec,$r_wday) = ($t[5]+1900, $t[4]+1, $t[3], $t[2], $t[1], $t[0], $t[6]);
my $r_dname = ("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat")[$r_wday];
my $r_mname = ("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec")[$r_mon - 1];
$rss_time= sprintf("$r_dname, %02d $r_mname $r_year %02d:%02d:%02d +0900",$r_mday,$r_hour,$r_min,$r_sec);
$top_r_title = $bbstitle ;
$top_r_desc = "$bbstitle の最新投稿トップ $rss_max";
#For UTF8
# Jcode::convert(\$top_r_title 'utf8', 'euc');
# Jcode::convert(\$top_r_desc 'utf8', 'euc');
$top_r_link = "http://$ENV{SERVER_NAME}$ipath$bbs/";
$top_r_image = "http://$ENV{SERVER_NAME}$ipath"."rss_logo.jpg";
if($topimg ne ''){
$top_r_image = "$topimg";
}
my $msb = <<"EOF";