ファイルをダウンロードした時点で、これらの利用規約に同意したものと見なします。
情報求ム。
ソースは XHTML 1.0 + CSS 2 の仕様に沿うように書いてますが、どこかおかしい部分があったら是非教えて下さい。全てのデザインはスタイルシートによって行っているので、デザインを変えるためには CSS の知識が必要です。
例えば初期設定ファイルのログ保存最大数が 50 件、過去ログ 1 ファイル辺りのログ保存最大数が 20 件で、現行ログには 40 件記録されているとする。この状態で管理者が初期設定ファイルのログ保存最大数を 10 などに一気に減らして設定を更新し投稿を行った場合、過去ログのログ保存最大数が 20 件を超過し、この場合は 30 件 + 最新書き込み 1 件の計 31 件分が 1 つの過去ログファイル内に記録されてしまう(本来ならば 20 件ずつ過去ログに記録する設定なのに、31 件分記録されてしまうということ)。
お好きな形式のファイルを選択してダウンロードして下さい。
v1.08 及び v1.09 からのアップデートは「rrbbs.cgi」「rrbbsinit.cgi」「rrbbs.js」の 3 ファイルです。これら 3 ファイルだけをまとめた圧縮ファイル(ZIP形式)をご用意しましたので、v1.08 及び v1.09 からのアップグレードの方はこちらを落として下さい。今回は、初期設定とJSファイルの初期設定をアップデート後に各自で設定し直す必要があるので注意して下さい(これが面倒臭いところですが、仕方ありません)。また、本体に何か手を加えていた場合も各自で同じように修正する必要があります。バージョンアップ後は必ず管理画面から「HTML 書き出し」を一度実行し、rrbbs.html を最新の状態に更新するのを忘れないで下さい。
「Royal Road BBS」を実際にご利用なさっている方々のサイトです。
「rrbbsinit.cgi」をメモ帳などのテキストエディタで開いて編集して下さい。Perl のパスはお使いのサーバに合わせて下さい。デフォルトでは #!/usr/local/bin/perl になってます。
パーミッション。基本的には「705」「606」等の指定になりますが、サーバーによっては「700」「600」の場合もあります。サーバ側で指定がある場合はそちらに従って下さい。
# / rrbbs [701] / -- rrbbs.cgi [705 or 700] - (メインスクリプト) # -- rrbbslog.cgi [606 or 600] - (ログファイル) # -- rrbbspastconf.cgi [606 or 600] - (過去ログコンフィグファイル) # -- rrbbs.html [606 or 604] - (掲示板の最初のページ) # -- rrbbsinit.cgi [604 or 600] - (初期設定用) # -- Idea256.pm [604 or 600] - (Idea[256] 専用モジュール) # -- jcode.pl [604 or 600] - (日本語変換ライブラリ) # -- rrbbs.css [604] - (スタイルシート) # -- rrbbs.js [604] - (JavaScript ファイル) # -- rrbbspast/ [703 or 700] - (過去ログ保存用ディレクトリ) # -- rrbbsicon/ [701] - (アイコン画像用ディレクトリ)
Jcode.pm がサーバー側に導入されている場合はjcode.plは不要なので削除して構いません。また、アイコンを使用しない場合は rrbbsicon/ ディレクトリは不要です。過去ログを保存しない場合は rrbbspast/ ディレクトリと rrbbspastconf.cgi も不要です。
全てのファイルをアップしてパーミッションの設定も行い初期設定も完了したら、rrbbs.htmlにアクセスして管理画面に入り、「HTML 書き出し」を一度実行します。すると掲示板に移動すると思いますので、そこから投稿やレスを試してみて、正常に動作すれば設置はOKです。
例えば
<em style="font-size: 500pt">テキスト
というEM要素があったとします。この場合の属性値は
style="font-size: 500pt"
の部分になります。これを全て無視するので、上記のEM要素をメッセージに書いて投稿した場合は、
<em>
になります。
具体的な理由は書きませんが、主にセキュリティ対策でこのような仕様になっています。 Aタグなどを許可しても意味がありませんので、許可しないことを推奨致します。 また、開始タグと終了タグの順番が逆だったりしたらタグとして扱いませんので安全に使用可能です。 ちなみに、開始タグと終了タグのペアで正当性を判断している関係上、以下のような終了タグを持たないタグを許可しても正常に動作しませんので悪しからず。
meta br col link base img area param hr input frame
まあ、普通は特に許可する必要のないタグだとは思いますが。
設定するファイルが2つあるので注意して下さい。アイコン画像用ディレクトリに画像をアップしたら、 「メモ帳」でrrbbsinit.cgiを開きます。「アイコンの設定」にある「アイコン画像の定義」は初期状態では以下のようになっています。
# アイコン画像の定義
$self->{icons} = {
'cabin.gif' => 'キャビン 1',
'cabin_m.gif' => 'キャビン 2',
'hope.gif' => 'ホープ',
'kent.gif' => 'ケント',
'lark.gif' => 'ラーク',
'wakaba.gif' => 'わかば',
'sevenstars.gif' => 'セブンスター',
'peace.gif' => 'ピース',
'mild_seven.gif' => 'マイルドセブン 1',
'mild_seven2.gif' => 'マイルドセブン 2',
'marlboro.gif' => 'マルボロ',
'lucky-strike.gif' => 'ラッキーストライク',
};
「=>」の左側の部分がアイコン画像のファイル名です。ここにはアイコン画像のディレクトリは含みません。例えば「'cat.gif'」や「'dog.gif'」のようになります。 次に、「=>」の右側の部分がアイコンの名前で、ここでの指定がアイコン選択時のメニューや画像の ALT 属性で表示されます。例えば「'ネコ'」や「'イヌ'」のように自由に指定することが出来ます。 CGI 側の設定はこれで完了ですが、もう1ファイル設定します。「rrbbs.js」を右クリックの編集で開きます。
// アイコン画像の定義
var icons = {
'cabin.gif' : 'キャビン 1',
'cabin_m.gif' : 'キャビン 2',
'hope.gif' : 'ホープ',
'kent.gif' : 'ケント',
'lark.gif' : 'ラーク',
'wakaba.gif' : 'わかば',
'sevenstars.gif' : 'セブンスター',
'peace.gif' : 'ピース',
'mild_seven.gif' : 'マイルドセブン 1',
'mild_seven2.gif' : 'マイルドセブン 2',
'marlboro.gif' : 'マルボロ',
'lucky-strike.gif' : 'ラッキーストライク' // ←最後は「,」が不要。
};
rrbbsinit.cgi とほぼ同一です。違うのは、「=>」ではなく「:」なこと、一番最後に「,」を付けてはならないことです。 rrbbsinit.cgi と rrbbs.js の設定は必ず同じになるようにします。設定を変更後は必ず管理画面から「HTML 書き出し」を一度実行し、rrbbs.html に設定を反映させて下さい。
「メモ帳」でrrbbsinit.cgiを開きます。「文字色の設定」で色の定義が可能です。デフォルトでコメントされている(行頭に ( # ) が付いている)のは、デフォルトの背景色「白」に対して、読めない、読み難い、やや読み難いと思われる文字色です。
$self->{textcolor} = {
black => 'ブラック',
gray => 'グレイ',
# silver => 'シルバー',
# white => 'ホワイト',
red => 'レッド',
# yellow => 'イエロー',
# lime => 'ライム',
# aqua => 'アクア',
blue => 'ブルー',
fuchsia => 'フクシア',
maroon => 'マルーン',
olive => 'オリーブ',
green => 'グリーン',
teal => 'ティール',
navy => 'ネイビー',
purple => 'パープル',
# orange => 'オレンジ',
tomato => 'トマト',
chocolate => 'チョコレート',
};
「gold」を追加してみましょう。
$self->{textcolor} = {
black => 'ブラック',
gray => 'グレイ',
# silver => 'シルバー',
# white => 'ホワイト',
red => 'レッド',
# yellow => 'イエロー',
# lime => 'ライム',
# aqua => 'アクア',
blue => 'ブルー',
fuchsia => 'フクシア',
maroon => 'マルーン',
olive => 'オリーブ',
green => 'グリーン',
teal => 'ティール',
navy => 'ネイビー',
purple => 'パープル',
# orange => 'オレンジ',
tomato => 'トマト',
chocolate => 'チョコレート',
gold => 'ゴールド',
};
少し複雑なので良く読んで下さい。「=>」の左側の部分がスタイルシートのクラス名と <option> タグの value 属性を兼ねています。必ず 1 文字目が半角アルファベットから始まる名前にして下さい。2 文字目以降は半角英数字と「_」を使えます。 「=>」の右側の部分は <option> タグのテキスト部になります。こちらはお好みで自由に設定して下さい。例えば「'イエロー'」を「'黄色'」などにしても良いです。 使わない色は行頭に「#」を付けるか、行ごと消してしまえば良いです。 設定を変更後は必ず管理画面から「HTML 書き出し」を一度実行し、rrbbs.html に設定を反映させて下さい。 これだけで追加出来ればラクチンなのですが、もう一つ手順が必要になります。「rrbbs.css」を開いて一番下(分かればどこでも良いです)に以下のように追加します。
.gold { color: #ffd700 }
これで完了。最初はちょっと面倒に感じるかもしれませんが、この要領で文字色は自由に追加・変更・削除出来ます。
rrbbs.jsを右クリックの「編集」で開き、「クッキーの名前」と「クッキーの有効期限」をご自由に変更して下さい。
閲覧時の負荷を無くす為です。掲示板というのは、通常はアクセスした人が必ず書き込むということはなく、ただ閲覧するだけである場合が多いものです。しかしながら、このような閲覧のみの場合でもCGIにリクエストするわけなので、プロセスが起動されることになります。
ブックマークやリンク等から掲示板にアクセスする場合、普通は掲示板の最初の1ページ(最新の情報があるページ)にアクセスすると思うので、このページが最も閲覧頻度が高いと推測されます。ここで、このページをHTML文章にすることで、余計なプロセスが起動されることを可能な限り抑えることが出来ると期待します。
ここからは作者の勝手な推論ですが、仮に普通の掲示板CGIにアクセスするのに「パワー1」を使用し、ログの書き込みをするのに「パワー2」が必要だとします。100回アクセスがあり、うち10回書き込みが行われたとすると、「パワー120」を使用することになります。これに対して、最初の1ページがHTMLである掲示板CGIでは、普通にアクセスする場合は「パワー0」ですが、書き込みでは通常のログとHTMLの両方を更新するので、ややコストが掛かり「パワー4」が必要だとします。100回アクセスがあり、うち10回書き込みが行われたとすると、「パワー40」を使用することになります。
あくまでもこれらのデータは作者の勝手な推論(=勘)なので、必ずしもこの通りの結果が得られるとは限りませんが、書き込みよりも閲覧の方が明らかに多い性質を持つ掲示板では、最初の 1 ページを HTML にした方が良いと思いました。
「rrbbslog.cgi」がログになっています。形式は以下のとおり。
だいたい、こんな感じです。
jcode.pl の著作権は歌代 和正さん(http://www.srekcah.org/jcode/)にあります。素晴らしいライブラリの提供に感謝します。
デフォルトで添付されている「タバコアイコン」及び背景画像は「桃たれちゃう」のこはるさんに著作権があります。これらのアイコン又は背景画像を利用する場合、「桃たれちゃう」へのリンクは著作権の明示として必ず表示しなければなりません。(アイコンと背景画像を共に使わない場合にはリンクを外すことが出来ます。)
(修正方法)「rrbbs.cgi」をメモ帳で開いて、「sub checklimit」を検索して下さい。ヒットした行を 0 として、そこから下に 6 行目が
} elsif ($series > $rrbbs->get('series')) {
となっていますので、そこを
} elsif ($ip eq $ENV{REMOTE_ADDR} && $series > $rrbbs->get('series')) {
に修正して下さい。