コメント、TBは過去記事でも大歓迎です♪
是非、アシアト・感想残してって下さいネ-(*´ -`)(´- `*)ネー
管理人へのメールはこちらからどーぞ♪

いただきストリートDS Wi-Fi対戦希望のかたはプロフ登録の上、ご利用ください♪
いたストDS 待ち合わせ場所

カルドセプトDSはコチラ
カルドDS 待ち合わせ場所

Monthly Log
Search
google検索
Web kinarie.com
CATEGORIES


Web Patio新着記事一覧表示

こっちのサイトにはBBSを2つ設置してます。

  

Web Patioアンチスパムバージョンを使わせていただいてるのですが、BBSが2つになったために新着記事が埋もれてしまいがちです。

トップページに新着記事の表示をしたいなーと思って、調べていたらKentWebさんのサポートコーナで改造方法発見!


スパム対策掲示板配布サイトのBALさんが回答してくださってます。
BALさん、ありがとうございました。


以下、おぼえがきメモ

Web Patioについてより


全ての掲示板から新着10件を表示させる方法。
以下の追加を全ての掲示板のregist.cgiに対して行う(青字部分を追加)。

#!/usr/local/bin/perl

#┌─────────────────────────────────
#│ [ WebPatio ]
#│ regist.cgi - 2006/11/11
#│ Copyright (c) KentWeb
#│ webmaster@kent-web.com
#│ http://www.kent-web.com/
#└─────────────────────────────────

# 外部ファイル取り込み
require './init.cgi';
require $jcode;

$logfile = '../patio_newlog.cgi'; ##
$max = 10; ##


#-------------------------------------------------
# 記事投稿処理
#-------------------------------------------------


--途中省略--


# スレッド更新
open(OUT,">$logdir/$new.cgi") || &error("Write Error: $new.cgi");
print OUT "$new<>$i_sub<>0<>1<>\n";
print OUT "0<>$in{'sub'}<>$i_nam2<>$in{'email'}<>$i_com<>$date<>$host<>$pwd<>$in{'url'}<>$in{'mvw'}<>$my_id<>$time<>$ex{1},$w{1},$h{1}<>$ex{2},$w{2},$h{2}<>$ex{3},$w{3},$h{3}<>\n";
close(OUT);

# 参照ファイル生成
open(NO,">$logdir/$new.dat") || &error("Write Error: $new.dat");
print NO "0:";
close(NO);

# パーミッション変更
chmod(0666, "$logdir/$new.cgi");
chmod(0666, "$logdir/$new.dat");

open(DAT,"+< $logfile") || &error("Open Error: $logfile") if (-e $logfile);
eval 'flock(DAT, 2);';
@data = ;
while ($max <= @data) { pop(@data); }
unshift(@data,"0<>$in{'sub'}<>$i_nam2<>$in{'email'}<>$i_com<>$date<>$host<>$pwd<>$in{'url'}<>$in{'mvw'}<>$title\n");
seek(DAT, 0, 0);
print DAT @data;
truncate(DAT, tell(DAT));
close(DAT);

&sendmail if ($mailing);


--途中省略--


unshift(@new,"$no2<>$host<>$time<>\n");
seek(DAT, 0, 0);
print DAT @new;
truncate(DAT, tell(DAT));
close(DAT);
}

open(DAT,"+< $logfile") || &error("Open Error: $logfile") if (-e $logfile);
eval 'flock(DAT, 2);';
@data = ;
while ($max <= @data) { pop(@data); }
unshift(@data,"$newno<>$in{'sub'}<>$i_nam2<>$in{'email'}<>$i_com<>$date<>$host<>$pwd<>$in{'url'}<>$in{'mvw'}<>$title<>\n");
seek(DAT, 0, 0);
print DAT @data;
truncate(DAT, tell(DAT));
close(DAT);

# メール送信
&sendmail if ($mailing == 2);


以下read2.cgiというファイル名にして掲示板のどれか一つにpatio.cgiと同じ階層にアップ。


#!/usr/local/bin/perl

# 外部ファイル取り込み
require './init.cgi';
require $jcode;
$logfile = '../patio_newlog.cgi';

&view2;

#-------------------------------------------------
# 個別記事閲覧
#-------------------------------------------------
sub view2 {
# スマイルアイコン定義
if ($smile) {
@s1 = split(/\s+/, $smile1);
@s2 = split(/\s+/, $smile2);
}

# 汚染チェック
$in{'f'} =~ s/\D//g;

&header($sub);
print <<"EOM";
<div align="center">
<Table cellspacing="0" cellpadding="0" width="95%">
<Tr><Td bgcolor="$col1">
<table cellspacing="1" cellpadding="5" width="100%">
EOM

open(IN,"$logfile");

while (<IN>) {
local($no,$sub,$nam,$eml,$com,$dat,$ho,$pw,$url,$mvw,$title) = split(/<>/);

# 記事表示
print "<tr bgcolor=\"$col1\"><td bgcolor=\"$col3\" width=\"100%\">";
print "<img src=\"$imgurl/file.gif\"> <b><font color=red>$title</font> $sub</b> ";
print "<span class=num>( No.$no )</span></td></tr>\n";
print "<tr bgcolor=\"$col1\"><td bgcolor=\"$col2\">";
print "<dl><dt>日時: $dat<dt>名前: <b>$nam</b>";

if ($eml && $mvw ne '0') {
print "  <<a href=\"mailto:$eml\" class=\"num\">$eml</a>>\n";
}
if ($url) {
print "<dt>参照: <a href=\"$url\" target=\"_blank\">$url</a>\n";
}
$com = &auto_link($com, $in{'f'});
print "<br><br><dd>$com</dl><br></td></tr>\n";
}
close(IN);

print <<"EOM";
</table></Td></Tr></Table>
</div>
</body>
</html>
EOM
exit;
}

#-------------------------------------------------
# リンク処理
#-------------------------------------------------
sub auto_link {
local($msg, $f) = @_;

$msg =~ s/([^=^\"]|^)(http\:[\w\.\~\-\/\?\&\+\=\:\@\%\;\#\%]+)/$1<a href=\"$2\" target=\"_target\">$2<\/a>/g;
$msg =~ s/>>(\d)([\d\-]*)/<a href=\"$readcgi?mode=view2&f=$f&no=$1$2\" target=\"_blank\">>>$1$2<\/a>/gi;

# スマイル画像変換
if ($smile) {
local($tmp);
foreach (0 .. $#s1) {
$tmp = $s2[$_];
$tmp =~ s/([\+\*\.\?\^\$\[\-\]\|\(\)\\])/\\$1/g;
$msg =~ s/$tmp/ <img src=\"$imgurl\/$s1[$_]\">/g;
}
}
$msg;

}

新着記事一覧はread2.cgiをアップした掲示板のアドレスをhttp://****/***/read2.cgiにして呼び出す。
patio.cgiの一つ上の階層にpatio_newlog.cgiという名前の空のファイルをアップ。
 


MTのメインページにインラインフレームで呼び出すときのスクロールバーを変更したいので、read2.cgiのヘッダー部分にスタイル設定。
これでキレイに表示されました

Category:[Movable Type]
2008,03,17 | wrote by Kazuko


Movable Type 3.35