記事No | : 10984 |
投稿日 | : 2012/09/23(Sun) 23:56:17 |
タイトル | : Joyful.cgi 3.7のレス数制限方法 |
ID情報 | : yukia |
投稿者 | : yukia |
URL | : http://125.0.181.3/users/tours2/joyful/ |
Joyful.cgi 3.7を使わせて頂いております。
目下構築中です。
現在、親記事に対し、レスを無限に付けることができてしまう仕様(標準の状態)になっています。
この状態ですと、ページ内の親記事の表示数を制限していても、特定の親記事に対し、画像付のレスを沢山投稿されることで、そのページが非常に重くなってしまうと思います。
私としては、レス記事にも画像を添付できる状態のまま利用したいのです。
そこで、親記事に対して付けられるレスの数を制限できればと思い、過去ログを検索したところ
http://www.kent-web.com/support/old/62/0058.html
この記事を発見したのですが、joyful.cgiは、この記事当時から大きく改良が繰り返されており、恥ずかしながら私のスキルでは現在のバージョンに応用することが困難でしたので、改めて質問させて頂きました。
Joyful.cgi 3.7で、親記事に対するレスの投稿数を(5件までとか)制限できるようにする記述をご教示賜りたく存じます。
何卒よろしくお願いいたします。
記事No | : 10990 |
投稿日 | : 2012/09/26(Wed) 02:25:25 |
タイトル | : Re: Joyful.cgi 3.7のレス数制限方法 |
ID情報 | : chat |
投稿者 | : ひらり |
こんにちは。
過去ログをよく見てみると、今とそんなに変わってないですよ〜。
なので、過去ログとまったく同じ方法でのやり方を書いてみます。
まずinit.cgiを開き、設定項目のところにどこでもいいから
以下を追加してください。
# 返信数の制限
$cf{res_limit} = 5;
そうしたらregist.cgiを開き、117行目付近に
トップソートあり というのがあると思いますが、
以下と見比べながら、
##←←←←←(追加)
と書いてある行を追加していってください。
# レス記事:トップソートあり
} elsif ($in{reno} && $cf{topsort}) {
my $i=1; ##←←←←←(追加)
my ($flg,$match,@tmp);
while (<DAT>) {
my ($no2,$reno2,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$col,$ex2,$w2,$h2,$chk) = split(/<>/);
# 親記事あり
if ($in{reno} == $no2) {
if ($reno2) { $flg = 1; last; }
$match = 1;
push(@data,$_);
# レス記事あり
} elsif ($in{reno} == $reno2) {
push(@data,$_);
$i++; ##←←←←←(追加)
# 親記事の直下に置く
} elsif ($match == 1 && $in{reno} != $reno2) {
if ($i > $cf{res_limit}) {last;} ##←←←←←(追加)
$match = 2;
push(@data,"$no<>$in{reno}<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$crypt<>$in{color}<>$ext<>$w<>$h<>0<>\n");
push(@tmp,$_);
} else {
push(@tmp,$_);
}
}
if ($flg || !$match) {
close(DAT);
&error("不正な返信要求です");
}
if ($i > $cf{res_limit}) { &error("書き込みありがとうございます<BR><BR>申\し訳ありませんが返信は$cf{res_limit}件までです"); } ##←←←←←(追加)
# 最初のレス記事のケース
if ($match == 1) {
push(@data,"$no<>$in{reno}<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$crypt<>$in{color}<>$ext<>$w<>$h<>0<>\n");
}
# レス記事1式をトップへ
push(@data,@tmp);
unshift(@data,"$no<>$addr<>$time<>\n");
# レス記事:トップソートなし
} else {
my $i=1; ##←←←←←(追加)
my ($flg,$match);
while (<DAT>) {
my ($no2,$reno2,$dat,$nam,$eml,$sub,$com,$url,$hos,$pw,$col,$ex2,$w2,$h2,$chk) = split(/<>/);
if ($match == 0 && $in{reno} == $no2) {
if ($reno2) { $flg = 1; last; }
$match = 1;
} elsif ($match == 1 && $in{reno} != $reno2) {
if ($i > $cf{res_limit}) {last;} ##←←←←←(追加)
$match = 2;
push(@data,"$no<>$in{reno}<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$crypt<>$in{color}<>$ext<>$w<>$h<>0<>\n");
}
push(@data,$_);
$i++ if ($in{'reno'} eq $reno2); ##←←←←←(追加)
}
if ($flg || !$match) {
close(DAT);
&error("不正な返信要求です");
}
if ($i > $cf{res_limit}) { &error("書き込みありがとうございます<BR><BR>申\し訳ありませんが返信は$cf{res_limit}件までです"); } ##←←←←←(追加)
if ($match == 1) {
push(@data,"$no<>$in{reno}<>$date<>$in{name}<>$in{email}<>$in{sub}<>$in{comment}<>$in{url}<>$host<>$crypt<>$in{color}<>$ext<>$w<>$h<>0<>\n");
}
unshift(@data,"$no<>$addr<>$time<>\n");
}
> Joyful.cgi 3.7を使わせて頂いております。
>
> 目下構築中です。
> 現在、親記事に対し、レスを無限に付けることができてしまう仕様(標準の状態)になっています。
> この状態ですと、ページ内の親記事の表示数を制限していても、特定の親記事に対し、画像付のレスを沢山投稿されることで、そのページが非常に重くなってしまうと思います。
> 私としては、レス記事にも画像を添付できる状態のまま利用したいのです。
>
> そこで、親記事に対して付けられるレスの数を制限できればと思い、過去ログを検索したところ
> http://www.kent-web.com/support/old/62/0058.html
> この記事を発見したのですが、joyful.cgiは、この記事当時から大きく改良が繰り返されており、恥ずかしながら私のスキルでは現在のバージョンに応用することが困難でしたので、改めて質問させて頂きました。
>
> Joyful.cgi 3.7で、親記事に対するレスの投稿数を(5件までとか)制限できるようにする記述をご教示賜りたく存じます。
> 何卒よろしくお願いいたします。
記事No | : 10994 |
投稿日 | : 2012/09/26(Wed) 15:03:01 |
タイトル | : Re^2: Joyful.cgi 3.7のレス数制限方法 |
ID情報 | : yukia |
投稿者 | : yukia |
ひらり様、ありがとうございます!
joyful.cgiにヒントがあるのではないかと、ずっとそればかり追っていたこともあり、regist.cgiとは全く気がつきませんでした。
丁寧なソースも頂き、大変助かりました。
本当にありがとうございました!