[763] Web Patioについて 投稿者:ジェレミー$ 投稿日:02/13-22:27 <URL>
(1) プログラム名→Web Patio
バージョン→ Ver: 3.06
(2) スクリプトのURL→http://m2-bbs.hp.infoseek.co.jp/
初めて投稿させて頂きます。CGIの設置等まったく分からないため知人に聞いたりなどして、自分の作成したHPに掲示板Web Patioをお借りし設置させて頂きました。
過去ログを見ましたが、同じような質問は見つけることが出来ませんでしたのでどうぞ教えてください。
Web Patioの掲示板を項目ごとに複数設置したのですが、その掲示板に書かれた全ての新着記事を一覧で見るということは可能でしょうか?
一覧で見られるように出来るのでしたら、下記の二種類を考えております。
@トップページに載せる方法(最新記事10件載せる等)
Aトップページ左部分のメニューに新着用の掲示板を新たに設ける方法
よろしくお願いいたします。
[775] Re: Web Patioについて 投稿者:BAL 投稿日:02/14-19:23 <URL>
> (1) プログラム名→Web Patio
> バージョン→ Ver: 3.06
> (2) スクリプトのURL→http://m2-bbs.hp.infoseek.co.jp/
>
> 初めて投稿させて頂きます。CGIの設置等まったく分からないため知人に聞いたりなどして、自分の作成したHPに掲示板Web Patioをお借りし設置させて頂きました。
> 過去ログを見ましたが、同じような質問は見つけることが出来ませんでしたのでどうぞ教えてください。
>
> Web Patioの掲示板を項目ごとに複数設置したのですが、その掲示板に書かれた全ての新着記事を一覧で見るということは可能でしょうか?
> 一覧で見られるように出来るのでしたら、下記の二種類を考えております。
> @トップページに載せる方法(最新記事10件載せる等)
> Aトップページ左部分のメニューに新着用の掲示板を新たに設ける方法
>
>
> よろしくお願いいたします。
全ての掲示板から新着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 = <DAT>;
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 = <DAT>;
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と同じ階層にアップ。新着記事一覧はread2.cgiをアップした掲示板のアドレスをhttp://****/***/read2.cgiにして呼び出す。
patio.cgiの一つ上の階層にpatio_newlog.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;
}
[777] Re^2: Web Patioについて 投稿者:ジェレミー$ 投稿日:02/15-10:19 <URL>
ご返答ありがとうございした。
今晩さっそく取組んでみますので、またなにかありましたら教えてください。
[788] Re^2: Web Patioについて 投稿者:ジェレミー$ 投稿日:02/16-11:02 <URL>
> > (1) プログラム名→Web Patio
> > バージョン→ Ver: 3.06
> > (2) スクリプトのURL→http://m2-bbs.hp.infoseek.co.jp/
> >
> > 初めて投稿させて頂きます。CGIの設置等まったく分からないため知人に聞いたりなどして、自分の作成したHPに掲示板Web Patioをお借りし設置させて頂きました。
> > 過去ログを見ましたが、同じような質問は見つけることが出来ませんでしたのでどうぞ教えてください。
> >
> > Web Patioの掲示板を項目ごとに複数設置したのですが、その掲示板に書かれた全ての新着記事を一覧で見るということは可能でしょうか?
> > 一覧で見られるように出来るのでしたら、下記の二種類を考えております。
> > @トップページに載せる方法(最新記事10件載せる等)
> > Aトップページ左部分のメニューに新着用の掲示板を新たに設ける方法
> >
> >
> > よろしくお願いいたします。
>
>
> 全ての掲示板から新着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 = <DAT>;
> 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 = <DAT>;
> 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と同じ階層にアップ。新着記事一覧はread2.cgiをアップした掲示板のアドレスをhttp://****/***/read2.cgiにして呼び出す。
> patio.cgiの一つ上の階層にpatio_newlog.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;
> }
知人にも聞きながらさっそくやってみたのですが、うまくいきませんしでした。また、どこが間違っているのかも分からないでおります。どうぞ教えてください。
昨日やりました手順を書きます。
@以下の追加を全ての掲示板のregist.cgiに対して行うという指示に対して。
↓
a1からa11とa20の掲示板の中にあるregist.cgiに、二箇所の追加部分を入れました。(ここからと書いてある前の#は入れなくてもよろしかったのでしょうか?)
Aread2.cgiというファイル名にして掲示板のどれか一つにpatio.cgiと同じ階層にアップという指示に対して。
↓
以下の内容をread2として各掲示板であるa1からa11とa20の中に入れました。(どれか一つということでしたが、どの掲示板でもよかったのかどうか分からなかったので全部の掲示板にいれました。)
#!/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;
}
Bpatio.cgiの一つ上の階層にpatio_newlog.cgiという名前の空のファイルをアップという指示に対して。
↓
各掲示板(a1からa11とa20)の入っている同じフォルダに
patio_newlogの空のファイルを入れました。
C新着記事一覧はread2.cgiをアップした掲示板のアドレスをhttp://****/***/read2.cgiにして呼び出すという指示に対して
↓
どうやっていいのか分からず、なにもしませんでした。
DCが分からないまま、とりあえずregistとread2をアップロードさせませした。
以上が昨日したことです。どうかよろしくお願いいたします。
[793] Re^3: Web Patioについて 投稿者:BAL 投稿日:02/16-19:32 <URL>
> 昨日やりました手順を書きます。
> @以下の追加を全ての掲示板のregist.cgiに対して行うという指示に対して。
> ↓
> a1からa11とa20の掲示板の中にあるregist.cgiに、二箇所の追加部分を入れました。(ここからと書いてある前の#は入れなくてもよろしかったのでしょうか?)
#を削除するとサーバーエラーになります。
> Aread2.cgiというファイル名にして掲示板のどれか一つにpatio.cgiと同じ階層にアップという指示に対して。
> ↓
> 以下の内容をread2として各掲示板であるa1からa11とa20の中に入れました。(どれか一つということでしたが、どの掲示板でもよかったのかどうか分からなかったので全部の掲示板にいれました。)
どの掲示板でも良いですから一つだけにしてください。他のは無駄になります。
> C新着記事一覧はread2.cgiをアップした掲示板のアドレスをhttp://****/***/read2.cgiにして呼び出すという指示に対して
> ↓
> どうやっていいのか分からず、なにもしませんでした。
read2.cgiを入れた掲示板のアドレスが以下であれば
http://m2-bbs.hp.infoseek.co.jp/cgi-bin/bbs/patio-a20-kanri/patio.cgi
呼出アドレスは以下になります。
http://m2-bbs.hp.infoseek.co.jp/cgi-bin/bbs/patio-a20-kanri/read2.cgi
[799] Re^4: Web Patioについて 投稿者:ジェレミー$ 投稿日:02/17-11:19 <URL>
ご返答ありがとうございます。下記のような手順でしました。
> > 昨日やりました手順を書きます。
> > @以下の追加を全ての掲示板のregist.cgiに対して行うという指示に対して。
> > ↓
> > a1からa11とa20の掲示板の中にあるregist.cgiに、二箇所の追加部分を入れました。(ここからと書いてある前の#は入れなくてもよろしかったのでしょうか?)
>
> #を削除するとサーバーエラーになります。
→全ての掲示板に#をいれました。
> > Aread2.cgiというファイル名にして掲示板のどれか一つにpatio.cgiと同じ階層にアップという指示に対して。
> > ↓
> > 以下の内容をread2として各掲示板であるa1からa11とa20の中に入れました。(どれか一つということでしたが、どの掲示板でもよかったのかどうか分からなかったので全部の掲示板にいれました。)
>
> どの掲示板でも良いですから一つだけにしてください。他のは無駄になります。
→a20だけに残し、残りは削除しました。
> > C新着記事一覧はread2.cgiをアップした掲示板のアドレスをhttp://****/***/read2.cgiにして呼び出すという指示に対して
> > ↓
> > どうやっていいのか分からず、なにもしませんでした。
>
> read2.cgiを入れた掲示板のアドレスが以下であれば
> http://m2-bbs.hp.infoseek.co.jp/cgi-bin/bbs/patio-a20-kanri/patio.cgi
> 呼出アドレスは以下になります。
>
→左のメニュー一覧の方ののソースに
http://m2-bbs.hp.infoseek.co.jp/cgi-bin/bbs/patio-a20-kanri/read2.cgi
↓
<a href="cgi-bin/bbs/patio-a20-kanri/read2.cgi" target="top">テスト</a>
と追加したのですがよかったのでしょうか??
以上の後に下記のようにしました。
@各掲示板のregist.cgiのアップロード
Aread2.cgiはa20だけ残してアップロードするところで削除
B左のメニューのaをアップロード
合っているのかどうかまた教えて頂けますでしょうか?
よろしくお願いいたします。
[801] Re^5: Web Patioについて 投稿者:BAL 投稿日:02/17-13:08 <URL>
★マークの2行の追加を忘れているのでは。
このままの状態で投稿を行うとサーバーに負荷がかかりcoreというファイルが生成されますので速やかに処置してcoreと言うファイルは削除してください。
#!/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; ## ←★追加
[805] Re^6: Web Patioについて 投稿者:ジェレミー$ 投稿日:02/17-15:10 <URL>
> ★マークの2行の追加を忘れているのでは。
> このままの状態で投稿を行うとサーバーに負荷がかかりcoreというファイルが生成されますので速やかに処置してcoreと言うファイルは削除してください。
>
> #!/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; ## ←★追加
ご返答ありがとうございます。
ご指摘の部分はまったく気がつかず抜けておりました。
さっそく追加してアップロードし、テスト書き込み後、記事の最新が掲載されるのを確認しました。どうもありがとうございました。
お手数ですがまた教えていただけますでしょうか?
@親スレッドに対して、例えば意味のない返信が繰り返されますと、肝心の親スレッドがどんどん下にいってしまい、最新記事が見にくくなるので、親スレッドだけ掲載されるようにということは出来ますでしょうか?
A各掲示板の最新10件ずつが、最新記事掲示板(仮名)に載るとして、そのページには何件まで掲載されるのでしょうか?
何度もすみませんが、どうかよろしくお願いいたします。
[806] Re^7: Web Patioについて 投稿者:ジェレミー$ 投稿日:02/17-15:20 <URL>
> > ★マークの2行の追加を忘れているのでは。
> > このままの状態で投稿を行うとサーバーに負荷がかかりcoreというファイルが生成されますので速やかに処置してcoreと言うファイルは削除してください。
> >
> > #!/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; ## ←★追加
>
> ご返答ありがとうございます。
> ご指摘の部分はまったく気がつかず抜けておりました。
> さっそく追加してアップロードし、テスト書き込み後、記事の最新が掲載されるのを確認しました。どうもありがとうございました。
>
> お手数ですがまた教えていただけますでしょうか?
>
> @親スレッドに対して、例えば意味のない返信が繰り返されますと、肝心の親スレッドがどんどん下にいってしまい、最新記事が見にくくなるので、親スレッドだけ掲載されるようにということは出来ますでしょうか?
>
> A各掲示板の最新10件ずつが、最新記事掲示板(仮名)に載るとして、そのページには何件まで掲載されるのでしょうか?
>
> 何度もすみませんが、どうかよろしくお願いいたします。
追加で、もうひとつ教えて下さい。
B親スレッドに不適切な書き込みがあって削除した場合、最新記事一覧のページに載った記事も削除するように出来ますか?
(親スレッドを削除したら最新記事も削除になる、もしくは最新記事ページ自体に、記事を削除するという項目があるという風にするのが適切でしょうか??)
どうぞよろしくお願いします。
[807] Re^8: Web Patioについて 投稿者:BAL 投稿日:02/17-22:31 <URL>
> > @親スレッドに対して、例えば意味のない返信が繰り返されますと、肝心の親スレッドがどんどん下にいってしまい、最新記事が見にくくなるので、親スレッドだけ掲載されるようにということは出来ますでしょうか?
read2.cgiと同じ内容に以下の追加を行ってこれをread3.cgiとしてread2.cgiと同じ階層にアップすれば可能です。
while (<IN>) {
local($no,$sub,$nam,$eml,$com,$dat,$ho,$pw,$url,$mvw,$title) = split(/<>/);
if ($no) { next; } ## ←追加
# 記事表示
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>";
> > A各掲示板の最新10件ずつが、最新記事掲示板(仮名)に載るとして、そのページには何件まで掲載されるのでしょうか?
各掲示板の最新10件ずつではなく掲示板トータルの10件です。
> B親スレッドに不適切な書き込みがあって削除した場合、最新記事一覧のページに載った記事も削除するように出来ますか?
> (親スレッドを削除したら最新記事も削除になる、もしくは最新記事ページ自体に、記事を削除するという項目があるという風にするのが適切でしょうか??
記事を削除する機能を追加することは可能です。以下をadmin2.cgiとしてread2と同じ階層にアップしてください。
尚、これ以上の改造は有償カスタマイズを利用されるかご自身で解決してください。
#!/usr/local/bin/perl
# 外部ファイル取り込み
require './init.cgi';
require $jcode;
$admin = './admin2.cgi';
$logfile = '../patio_newlog.cgi';
&parse_form;
&admin;
#-------------------------------------------------
# 管理モード
#-------------------------------------------------
sub admin {
# 認証
if ($in{'pass'} eq "") { &enter; }
elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); }
# 削除処理
# 削除情報
local(@del) = split(/\0/, $in{'tim'});
# 削除情報をマッチング
local(@data);
open(DAT,"+< $logfile") || &error("Open Error: $logfile");
eval 'flock(DAT, 2);';
while (<DAT>) {
local($no,$sub,$nam,$eml,$com,$dat,$ho,$pw,$url,$mvw,$title,$tim) = split(/<>/);
local($flag);
foreach $del (@del) {
if ($tim == $del) { $flag = 1; last; }
}
if (!$flag) { push(@data,$_); }
}
# 更新
seek(DAT, 0, 0);
print DAT @data;
truncate(DAT, tell(DAT));
close(DAT);
# 削除画面を表示
&header;
print <<EOM;
<form action="$admin" method="post">
<input type="hidden" name="pass" value="$in{'pass'}">
<input type="submit" value="送信する">
EOM
# 記事を展開
open(IN,"$logfile") || &error("Open Error: $logfile");
while (<IN>) {
local($no,$sub,$nam,$eml,$com,$dat,$ho,$pw,$url,$mvw,$title,$tim) = split(/<>/);
if ($eml) { $nam="<a href=\"mailto:$eml\">$nam</a>"; }
$com =~ s/<[^>]*(>|$)//g;
if (length($com) > 60) {
$com = substr($com,0,60) . '...';
}
print "<dt><hr><input type=\"checkbox\" name=\"tim\" value=\"$tim\">";
print "<b><font color=red>$title</font></b> [$no] <b style=\"color:$subCol\">$sub</b> ";
print "$nam - $dat\n";
print "<dd><span style=\"font-size:11px\">$com</span>\n";
}
close(IN);
print <<EOM;
<dt><hr>
</dl>
</form>
</body>
</html>
EOM
exit;
}
#-------------------------------------------------
# 入室画面
#-------------------------------------------------
sub enter {
&header;
print <<EOM;
<div align="center">
<h4>パスワードを入力して下さい</h4>
<form action="$admin" method="post">
<input type="password" name="pass" size="12">
<input type="submit" value=" 認証 "></form>
</div>
<script language="javascript">
<!--
self.document.forms[0].pass.focus();
//-->
</script>
</body>
</html>
EOM
exit;
}
各掲示板のregist.cgiを修正
#▼ここから▼
open(DAT,"+< $logfile") || &error("Open Error: $logfile") if (-e $logfile);
eval 'flock(DAT, 2);';
@data = <DAT>;
while ($max <= @data) { pop(@data); }
unshift(@data,"0<>$in{'sub'}<>$i_nam2<>$in{'email'}<>$i_com<>$date<>$host<>$pwd<>$in{'url'}<>$in{'mvw'}<>$title<>$time<>\n"); ## ←修正
seek(DAT, 0, 0);
print DAT @data;
truncate(DAT, tell(DAT));
close(DAT);
#▲ここまで追加▲
こちらは返信記事を記録する部分ですので親記事の新着だけで良ければこの記述を削除する。
#▼ここから▼
open(DAT,"+< $logfile") || &error("Open Error: $logfile") if (-e $logfile);
eval 'flock(DAT, 2);';
@data = <DAT>;
while ($max <= @data) { pop(@data); }
unshift(@data,"$newno<>$in{'sub'}<>$i_nam2<>$in{'email'}<>$i_com<>$date<>$host<>$pwd<>$in{'url'}<>$in{'mvw'}<>$title<>$time<>\n"); ## ←修正
seek(DAT, 0, 0);
print DAT @data;
truncate(DAT, tell(DAT));
close(DAT);
#▲ここまで追加▲
[809] Re^9: Web Patioについて 投稿者:ジェレミー$ 投稿日:02/18-10:59 <URL>
たびたびのご返答ありがとうございます。
試行錯誤の末、全ての事が出来ました。
> > > @親スレッドに対して、例えば意味のない返信が繰り返されますと、肝心の親スレッドがどんどん下にいってしまい、最新記事が見にくくなるので、親スレッドだけ掲載されるようにということは出来ますでしょうか?
>
> read2.cgiと同じ内容に以下の追加を行ってこれをread3.cgiとしてread2.cgiと同じ階層にアップすれば可能です。
>
> while (<IN>) {
> local($no,$sub,$nam,$eml,$com,$dat,$ho,$pw,$url,$mvw,$title) = split(/<>/);
> if ($no) { next; } ## ←追加
> # 記事表示
> 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>";
親スレッドのみの表示にすることが出来ました。
> > > A各掲示板の最新10件ずつが、最新記事掲示板(仮名)に載るとして、そのページには何件まで掲載されるのでしょうか?
>
> 各掲示板の最新10件ずつではなく掲示板トータルの10件です。
>
理解いたしました。勘違いしておりました。すみません。
> > B親スレッドに不適切な書き込みがあって削除した場合、最新記事一覧のページに載った記事も削除するように出来ますか?
> > (親スレッドを削除したら最新記事も削除になる、もしくは最新記事ページ自体に、記事を削除するという項目があるという風にするのが適切でしょうか??
>
> 記事を削除する機能を追加することは可能です。以下をadmin2.cgiとしてread2と同じ階層にアップしてください。
> 尚、これ以上の改造は有償カスタマイズを利用されるかご自身で解決してください。
>
> #!/usr/local/bin/perl
>
> # 外部ファイル取り込み
> require './init.cgi';
> require $jcode;
> $admin = './admin2.cgi';
> $logfile = '../patio_newlog.cgi';
>
> &parse_form;
> &admin;
>
> #-------------------------------------------------
> # 管理モード
> #-------------------------------------------------
> sub admin {
> # 認証
> if ($in{'pass'} eq "") { &enter; }
> elsif ($in{'pass'} ne $pass) { &error("パスワードが違います"); }
>
> # 削除処理
> # 削除情報
> local(@del) = split(/\0/, $in{'tim'});
>
> # 削除情報をマッチング
> local(@data);
> open(DAT,"+< $logfile") || &error("Open Error: $logfile");
> eval 'flock(DAT, 2);';
> while (<DAT>) {
> local($no,$sub,$nam,$eml,$com,$dat,$ho,$pw,$url,$mvw,$title,$tim) = split(/<>/);
>
> local($flag);
> foreach $del (@del) {
> if ($tim == $del) { $flag = 1; last; }
> }
> if (!$flag) { push(@data,$_); }
> }
>
> # 更新
> seek(DAT, 0, 0);
> print DAT @data;
> truncate(DAT, tell(DAT));
> close(DAT);
>
>
> # 削除画面を表示
> &header;
> print <<EOM;
>
> <form action="$admin" method="post">
> <input type="hidden" name="pass" value="$in{'pass'}">
> <input type="submit" value="送信する">
>
> EOM
>
> # 記事を展開
> open(IN,"$logfile") || &error("Open Error: $logfile");
> while (<IN>) {
> local($no,$sub,$nam,$eml,$com,$dat,$ho,$pw,$url,$mvw,$title,$tim) = split(/<>/);
>
> if ($eml) { $nam="<a href=\"mailto:$eml\">$nam</a>"; }
> $com =~ s/<[^>]*(>|$)//g;
> if (length($com) > 60) {
> $com = substr($com,0,60) . '...';
> }
>
> print "<dt><hr><input type=\"checkbox\" name=\"tim\" value=\"$tim\">";
> print "<b><font color=red>$title</font></b> [$no] <b style=\"color:$subCol\">$sub</b> ";
> print "$nam - $dat\n";
> print "<dd><span style=\"font-size:11px\">$com</span>\n";
> }
> close(IN);
>
> print <<EOM;
> <dt><hr>
> </dl>
> </form>
> </body>
> </html>
> EOM
> exit;
> }
>
> #-------------------------------------------------
> # 入室画面
> #-------------------------------------------------
> sub enter {
> &header;
> print <<EOM;
> <div align="center">
> <h4>パスワードを入力して下さい</h4>
> <form action="$admin" method="post">
> <input type="password" name="pass" size="12">
> <input type="submit" value=" 認証 "></form>
> </div>
> <script language="javascript">
> <!--
> self.document.forms[0].pass.focus();
> //-->
> </script>
> </body>
> </html>
> EOM
> exit;
> }
>
>
>
> 各掲示板のregist.cgiを修正
>
> #▼ここから▼
> open(DAT,"+< $logfile") || &error("Open Error: $logfile") if (-e $logfile);
> eval 'flock(DAT, 2);';
> @data = <DAT>;
> while ($max <= @data) { pop(@data); }
> unshift(@data,"0<>$in{'sub'}<>$i_nam2<>$in{'email'}<>$i_com<>$date<>$host<>$pwd<>$in{'url'}<>$in{'mvw'}<>$title<>$time<>\n"); ## ←修正
> seek(DAT, 0, 0);
> print DAT @data;
> truncate(DAT, tell(DAT));
> close(DAT);
> #▲ここまで追加▲
>
>
>
> こちらは返信記事を記録する部分ですので親記事の新着だけで良ければこの記述を削除する。
> #▼ここから▼
> open(DAT,"+< $logfile") || &error("Open Error: $logfile") if (-e $logfile);
> eval 'flock(DAT, 2);';
> @data = <DAT>;
> while ($max <= @data) { pop(@data); }
> unshift(@data,"$newno<>$in{'sub'}<>$i_nam2<>$in{'email'}<>$i_com<>$date<>$host<>$pwd<>$in{'url'}<>$in{'mvw'}<>$title<>$time<>\n"); ## ←修正
> seek(DAT, 0, 0);
> print DAT @data;
> truncate(DAT, tell(DAT));
> close(DAT);
> #▲ここまで追加▲
親スレッドの表示だけにしましたので、教えて頂いた通りに削除いたしました。
CGIの知識もなく、何も分からず思うまま質問してしまいお手数をお掛け致しました。何度も質問に答えて下さり、大変助かりました。
本当にどうもありがとうございました。
[前ページ]
[次ページ]
[検索ページ]
[掲示板]