KENT-WEB サポートコーナー 過去ログ [ 0388 ]


記事No: 15162
投稿日: 2016/09/25(Sun) 19:40:43
タイトル承認機能の追加
ID情報: fox730
投稿者: hr
URLhttp://horse-riding.xsrv.jp/joyful/joyful.cgi

現在、掲示板のJoyfulNote v6.02を利用させて頂いております。
荒らしにあった為、一度、初期化したのですが、
別の掲示板 LightBoard v10.1 のように、全ての投稿記事を管理者が承認後に表示させるようにしたいのですが、その機能を追加する方法はありますでしょうか。
宜しくお願いします。


記事No: 15164
投稿日: 2016/09/26(Mon) 14:40:16
タイトルRe: 承認機能の追加
ID情報: teketen
投稿者: てけてん

> 全ての投稿記事を管理者が承認後に表示させるようにしたいのですが、その機能を追加する方法はありますでしょうか。

先ずは、古いバージョンですが、その機能がある改造スクリプトが
http://antispam-bbs.xii.jp/joyful/index.html
にて、配布されていますので、ご紹介しておきますね。

----
以下は、最新版のJoyfulNote v6.02での改造方法となります。
JoyfulNoteには、画像の表示許可の判断を管理人が決められる設定があるので、それを利用しています。
その為、画像のみ表示許可を与えることが出来なくなります(記事は表示するが、画像は許可しないということは出来なくなる)。

※改造は、自己責任でお願いします。
※動作がおかしくなった場合は、元に戻してください。

■改造した後の動作について■

・投稿すると、管理人の投稿を含め、すべての投稿は一旦非表示になります。
 管理ページにて、表示許可を行ってください。
 また、画像のみの表示・非表示は行えなくなります。
 画像を非表示にしたい場合は、記事も非表示にして下さい。

・非表示件数が増えた時に、過去ログに移動又は、過去ログを生成していない場合に、ログが削除されるのを防ぐため、設定の$cf{max}で指定した最大記事数に、非表示件数がプラウされます。
 例えば、設定で$cf{max} = 100;にしていたとして、非表示件数が10あったとしたら、$cf{max}は110となるということです。
 管理ページで、表示許可をした時も、許可前の$cf{max}の値プラス非表示件数のままになります。
 新規及び返信投稿があった際に、その時の「$cf{max}の値プラス非表示件数」が最大記事数に変わります。
 ですので、親記事件数が$cf{max}の値を超えていた場合、非表示件数を表示許可した後、書き込みがあった時は、古い記事が表示許可した件数分、過去ログ移動又は削除されます。

・非表示件数が、30件以上になると、ログの保存の為に、掲示板に書き込み出来ないようになります。
 ですので、まめに管理ページにて表示許可を行うか、問題ある投稿は削除するようにしてください。

・親記事を非表示にした場合、その返信記事も全て非表示になります。

・掲示板にて、許可待ち(非表示)の投稿件数を表示できます。

以上の動作でよろしければ、以下の改造をしてみて下さい。

■改造方法■

JoyfulNote v6.02での改造方法です。

----
■ regist.cgi

195行目付近

# 完了画面
message('ありがとうございます。記事を受理しました。');



message($cf{img_check} ? 'ありがとうございます。<br>記事を受理しましたが、まだ表示されません。<br>管理者の許可が下りるまでお待ちください。' : 'ありがとうございます。記事を受理しました。'); # 改造の為、修正 ■■

に変更。
66行目付近

my $top = <DAT>;

の次の行に

# 改造の為、追加■■
if($cf{img_check}) {
my $check;
while (<DAT>) {
my ($reno,$chk) = (split(/<>/))[1,14];
$check++ if($chk eq '0');
if($check > 30) {
close(DAT);
error('申し訳ありません。未許可の投稿が多い為、現在投稿を受け付けておりません。<br>管理者が処理するまでお待ち下さい。');
}
$cf{max}++ if($chk eq '0' and $reno eq '');
}
seek(DAT, 0, 0);
<DAT>;
}
# 改造の為、追加 ここまで■■

を挿入。
----------------
■ joyful.cgi

623行目付近、454行目付近の
my ($no,$reno,$date,$nam,$eml,$sub,$com,$url,$hos,$pw,$col,$ext,$w,$h,$chk) = split(/<>/);

751行目付近、209行目付近の
my ($no,$reno,$date,$name,$eml,$sub,$com,$url,$host,$pw,$col,$ext,$w,$h,$chk) = split(/<>/);

の次の行に、

next if ($cf{img_check} && $chk eq '0'); # 改造の為、追加■■

を挿入。
119行目付近

$tmpl =~ s|!bbs_js!|$cf{cmnurl}/bbs.js|g;

の次の行に

$tmpl =~ s|!hide!|$check ? "<div id=\"announce\">許可待ちの投稿は、<span id=\"hide\">$check</b>件です。</div>" : ''|ie; # 改造の為、追加■■

を挿入。

52行目付近

my ($no,$reno,$date,$name,$eml,$sub,$com,$url,$host,$pw,$col,$ext,$w,$h,$chk) = split(/<>/);

の次の行に

# 改造の為、追加■■
if ($cf{img_check} && $chk eq '0') {
$check++;
next;
}
# 改造の為、追加 ここまで■■

を挿入。
44行目付近

# ページ数定義
my $pg = $in{pg} || 0;

の次の行に

my $check; # 改造の為、追加■■

を挿入。
----------------
■ admin.cgi

187行目付近

if ($cf{img_check}) {
if ($chk == 1) {
print qq|[<span class="grn">承認済</span>]\n|;
} else {
print qq|[<span class="red">未承認</span>]\n|;
}
}



# if ($cf{img_check}) {
# if ($chk == 1) {
# print qq|[<span class="grn">承認済</span>]\n|;
# } else {
# print qq|[<span class="red">未承認</span>]\n|;
# }
# }

に変更。
183行目付近

print qq|<input type="radio" name="no" value="$no">[$no]\n|;

の次の行に

# 改造の為、追加■■
if ($cf{img_check}) {
if ($chk == 1) {
print qq|[<span class="grn">記事表\示</span>]\n|;
} else {
print qq|[<span class="red">記事非表\示</span>]\n|;
}
}

を挿入。
----------------
■ テンプレートファイルbbs.html

許可待ち(非表示)のログ件数を表示したい場所に、

!hide!

を記述して下さい。
非表示のログがある場合、この部分に

<div id="announce">許可待ちの投稿は、<span id="hide">1</b>件です。</div>

のように表示されます。
<div><span>のid値を変更したい場合は、先ほどjoyful.cgiの119行目付近に追加した

$tmpl =~ s|!hide!|$check ? "<div id=\"announce\">許可待ちの投稿は、<span id=\"hide\">$check</b>件です。</div>" : ''|ie; # 改造の為、追加■■

のid値を変更して下さい。
そして、デザインなどはスタイルシートで指定するなどして下さい。
----------------
■ init.cgiの設定部分

# アップロードファイル管理者チェック機能 (0=no 1=yes)
# → アップロードファイルは管理者がチェック後表示
$cf{img_check} = 1;

ここを1にしてください。

以上です。


記事No: 15165
投稿日: 2016/09/26(Mon) 22:24:23
タイトルRe^2: 承認機能の追加
ID情報: fox730
投稿者: hr
URLhttp://horse-riding.xsrv.jp/joyful/joyful.cgi

てけてん様

この度は、ご丁寧に教えて頂きありがとうございます。
ご指導いただきました通り、追加・変更しましたら解決致しました。
本当にありがとうございました。


[検索ページ] [掲示板]