yybbsカスタマイズ・メモ(V6対応)

 ここ itochi.com のレンタルサーバーはセキュリティー面でCGI運用に制限が多いため、yybbs(掲示板)はそのままで動かずソースのファイル面を中心に手を入れることになりました。

 要約すると。
 ・CGIディレクトリに書き込みできない
 ・CGIディレクトリはブラウザからアクセスできないので画像やHTMLが入れられない
 ・書き込み用ディレクトリにはFTPからアップロードできない
 ・書き込み用ディレクトリに掘ったディレクトリ内のファイル一覧が読み出せない(謎設定につき要確認)。
↑単にパーミッション設定を4桁で行う必要があっただけでした。
 ・パスはユーザーディレクトリートップからのフル指定
 ・ホスト名解決などの関数が使用不可
 ・スパム対策のためCGIファイル名を変える。特に”BBS”は使用しないように。

 データパスの指定を書き換えるのみならず、空データやフォルダの作成CGIを先に作って準備する必要がありました。
 まぁ、そんな以上のおかげでCGIを覚えたわけですが(笑)。

 以下、当サイトで使用している掲示板システムでの改造点をメモ書き。
Ver6.21版(2009/05/03〜15)
(6.21以外の場合は行が違ってくると思うので探してください。)
 トピックス&スレッド表示に対応、忘れてました。アセアセ。

記事に返信する際、age/sageを選択できる改造

 設定ファイルで、レスがついた記事をトップに持ってくるか選択できるんですが、これを書き込み者のほうで選べるようにしてみました。

yybbs.cgi
299行目あたりに 赤い部分を追加

	require $formpl;
	&form($cnam,$ceml,$curl,$cpwd,$cico,$ccol,$resub,'');

	# 2005.11.14 by ITOCHI
	# 2006.10.10 v6対応
	# レス記事はage設定のチェックボックスを表示する
	print "<input type=checkbox name=age value=\"1\"";
	# $topsortの値を初期値とする
	if ($topsort) {
		print " checked";
	}
	print "><B>記事をageる</B><BR>\n";
	#

	print <<EOM;
	</form>
	</blockquote>
	</body>
	</html>
	EOM
	exit;
 解説:
 返信フォームを表示して戻ってきたところで、age指定のチェックボックスを追加表示しています。
 選択のデフォルト値は init.cgi ファイルの設定 $topsort に従ってます。


read.cgi
280行目あたりに 赤い部分を追加

	# フォーム
	require $formpl;
	&form($cnam,$ceml,$curl,$cpwd,$cico,$ccol,$resub,'');

	# 2005.11.14 by ITOCHI
	# 2006.10.10 v6対応
	# 2009.05.15 ツリー&トピックス追加
	# レス記事はage設定のチェックボックスを表示する
	print "<input type=checkbox name=age value=\"1\"";
	# $topsortの値を初期値とする
	if ($topsort) {
		print " checked";
	}
	print "><B>記事をageる</B><BR>\n";
	#

	print "</form>\n";

	# ユーザメンテフォーム(トピック表示の場合)
	if ($in{'list'} eq "topic") {
 解説:
 上と同様で、こちらはツリー&トピックス表示用。


regist.cgi
110行目あたり 赤い部分を追加

	# 暗証キーを暗号化
	if ($in{'pwd'} ne "") { $pwd = &encrypt($in{'pwd'}); }

	# 2005.11.14 by ITOCHI
	# 2006.10.10 v6対応
	# レス記事はチェックの有無でageを設定
	if ($in{'reno'} ne "") {
		if ($in{'age'} eq "") {
			$topsort = 0;
		}
	}
	#

	# 親記事の場合
	if ($in{'reno'} eq "") {
 解説:
 レス記事だったらチェックボックスの内容で設定の $topsort を書き換えます。



 お約束ながら注意書き
 上記改造はITOCHIが個人的に行っているもので、当然無保証です。

戻る