RCS-BOARD オンラインマニュアル


設置方法

robbsx.lzhをダウンロードして、解凍してください。
解凍すると、以下のファイルが展開されます。
rcsbbs.log がない場合は、中身が空の rcsbbs.log という名のファイルをメモ帳などで作ってください。

rcsbbs.cgi (メインプログラム)
rcsini.cgi (設定ファイル)
rcsskin.cgi (スキンファイル)
rcsjs.cgi (JavaScriptファイル)
rcsbbs.log (ログファイル)
jcode.pl (日本語コード変換)

  1. まず、メモ帳等のエディターで rcsini.cgi を開きます。

  2. 次に最低限以下の項目を設置する状況にあわせて変更してください。

    ## 管理人室に入るためのパスワード
    'admin_pass' => '000000',
    
    ## 設置するHTMLファイルからみたスクリプトがあるディレクトリの場所(よくわからない時はhttp://からで設定)
    'scr_b' => './cgi-bin/rcsbbs',
    
    ## 設置するHTMLファイルからみたスキン画像ディレクトリの場所(よくわからない時はhttp://からで設定)
    'img_dir' => './cgi-bin/rcsbbs/def_skin',
    
    ## 掲示板外枠の出力文字コード sjis/euc/jis/utf8/...
    ## sjis/euc/jis以外を使用する場合Jcode.pmが必要です。
    ## ここは設置するHTMLファイルの文字コードにあわせるようにしてください。
    'code' => 'sjis',
    
    このデフォルトの場合、設置するHTMLファイルと同じフォルダに cgi-bin というフォルダがあり、
    さらにその cgi-bin というフォルダの中の rcsbbs というフォルダに、スクリプト(メインプログラム)とスキン画像ディレクトリがあるということです。

  3. この解凍した7つのファイルをサーバ側のフォルダ(ここでは ./cgi-bin/rcsbbs/)にアップロードしてください。

  4. 設定したディレクトリ(ここでは./cgi-bin/rcsbbs/def_skin/)の中に def_skin の中身をアップロードしてください。
    この場合、./cgi-bin/rcsbbs/ の中に def_skin をフォルダごとアップロードしてもOKです。

  5. メインプログラムのあるフォルダ(ここでは./cgi-bin/rcsbbs/)の中に tmp という名のフォルダを作成してください。(フォルダ名は必ず半角で)

  6. パーミッションをそれぞれ以下のように変更してください。
    括弧内はsuEXEC環境、CGIWrap環境のサーバでのパーミッションです。
    rcsbbs.cgi  755  (700)
    rcsini.cgi  644  (600)
    rcsskin.cgi  644  (600)
    rcsjs.cgi  644  (600)
    rcsbbs.log  666  (600)
    jcode.pl  644  (600)
    ./tmp  777  (701)
    ./def_skin  755  (701)

  7. 最後に設置するHTMLの設置したい場所に、
    <script type="text/javascript" src="./cgi-bin/rcsbbs/rcsbbs.cgi"></script>
    と記述してください。
    URLは設置するHTMLファイルから見た rcsbbs.cgi の場所を記述してください。
    ここでは ./cgi-bin/rcsbbs/rcsbbs.cgi になります。

def_skin , cursor などの中身は別途ダウンロード等して用意してください。
両方ともろ風のサイトでダウンロードできます。

    [デフォルト設定での設置例]
    設置例 (括弧内はパーミッション比、前者は通常サーバ、後者はsuEXECサーバ)
    各設定のデフォルト値はこの設置例に沿ったものになっています。
  public_html (ホームディレクトリ、設置するHTMLはここ) ※括弧内はパーミッション値
      |
      +-- cgi-bin /
            |
            +-- rcsbbs / rcsbbs.cgi  [755 or 700]
                  |      rbxini.cgi  [644 or 600]
                  |      rcsskin.cgi [644 or 600]
                  |      rcsjs.cgi   [644 or 600]
                  |      rcsbbs.log  [666 or 600]
                  |      jcode.pl    [644 or 600]
                  |
                  +-- tmp [777 or 701] /      (一時ファイルディレクトリ)
                  |
                  +-- def_skin [755] / ro01.gif, ro02.gif, ... (RO風スキン(外枠)画像ディレクトリ)
                  |
                  +-- cursor [755] / cur0500.cur, cur_00.ani (RO風マウスカーソル画像ディレクトリ)

各種設定方法

メモ帳等のエディターで rcsini.cgi を開き、変更してください。
各設定の説明は設定項目ごとに書いてあるので、それを参考にしてください。
もし、よくわからないものがあれば掲示板などで気軽に質問してください。
ただ、一部プログラムの知識が必要なところがあります(URLフィルタの設定とか・・・)


スキンファイルについて

この掲示板のスキンファイルはよくある ”読み込んで置換” するのでなく、”Perlコードとして実行” されます。
とはいっても、通常のデザイン変更ならHTMLを弄るのとなんら変わりなく行えます。
HTMLソースは各表示部分についてサブルーチンとして分割提供されています。
また、このHTMLソースはヒアドキュメント内に書かれており、Perlの変数が使用可能です。
各グローバル変数は、設定変数(%INI)、標準入力変数(%in)、クッキー変数(%COOK)、その他のグローバル変数(%GLOBAL)となっています。
そのサブルーチンに固有(ローカル)な変数は、メインプログラムから渡されるデータの入ったハッシュのリファレンスが変数$ddに入れられています。
EOM という文字によりヒアドキュメントが終了するため、以後Perlの関数等が使用可能となります。


Jcode.pmの導入方法について

※RCS-BOARD Ver-3.1.0からは、Perlのバージョンが5.8.0以降ならJcode.pmは必要なくなりました。
使っているサーバーでJcode.pmがインストールされていないけど、どうしてもJcode.pmを使いたい場合、
rcsbbs.cgiのあるフォルダに新たに exlib という名のフォルダを作り、そこにJcode.pm等必要なファイルをアップロードすると使用できるようになります。
Jcode.pmの入手方法はググればたくさん出てくると思います。
Jcode.pmの圧縮ファイルを解凍するといろいろファイルが出てくると思うので、拡張子が.pmのファイルを全てアップロードすれば基本的には大丈夫です。
Jcode.pm Ver-2.xでは、perlのバージョンが5.8未満の場合、環境によってはUTF-8の扱いについてバグが発生するようです。
その場合は、こちらのバグ修正版Jcode.pmを使用してください。
(Jcode.pmをネット上から探すの面倒という人もこれを利用しちゃってください。但し、ここにあるのは最新版とは限らないので注意して下さい。)


ラグナ風マウスカーソルの取り付け方

cursorの中身のラグナ風カーソルは、
以前らぐふぁんのちぇっくさん(閉鎖されてしまいました。。)で配布されていたものの一部を再配布しています。
掲示板のスクリプトと同じ場所にディレクトリ cursor を作成し、
そこに cur0500.cur , cur0000.cur(又は、cur_00.ani) のカーソル画像をいれてください。
カーソル画像を違う場所に設置したい場合は、rcsini.cgi 内のカーソルフォルダの設定を変更してください。


アクセス制限機能について

rcsini.cgi内の設定で簡単に特定のIPからのアクセスを禁止にすることができます。
投稿者のIPは管理室で参照することができます。
アクセス制限の仕方は、アクセスを禁止したいIPをrcsini.cgi内にある'ip'に追加するだけでできます。
'ip'への追加の仕方は 'ip' => ['123.45.67.89','987.65.43.*',・・・]; のようにしてください。


JavaScriptの関数エクスポート

設置したHTMLなどからJavaScriptを使って簡単にRCS-BOARDを操作できるように関数を提供しています。
最も簡単な使い方は、onclickなどのイベントで提供される関数を呼び出す方法です。
例)<span onclick="rcsbbsjs.Minimize()">最小化!</span>
この例では 最小化! と表示されたところをクリックすると、RCS-BOARDが最小化されます。
また、"rcsbbsjs"の部分は、スクリプトのIDです。
スクリプトのIDは、アクセスしたスクリプトのファイル名'rcsbbs.cgi'等から拡張子を除いた文字列'rcsbbs'に'js'をつけたものになります。
マルチボード機能を使って1つのスクリプトで複数設置した場合、'rcsbbs2.cgi'等にアクセスすることになるので、
その場合は、'rcsbbs2js.Minimize()'等となります。
以下に提供される関数の簡単なリファレンスを載せておきます。

記事をリロード
rcsbbsjs.NewsReload()

閲覧者リスト更新
rcsbbsjs.VisitorListReload()

入力フォーカスをコメント欄にあわせる
rcsbbsjs.SetFocus()

掲示板の最小化
rcsbbsjs.Minimize()

掲示板の最大化
rcsbbsjs.Maximize()

最小時は最大化、最大時は最小化
rcsbbsjs.MinimizeOrMaximize()

掲示板を閉じる
rcsbbsjs.BBSClose()

掲示板を開く
rcsbbsjs.BBSOpen()

掲示板が閉じている時は開く、開いている時は閉じる
rcsbbsjs.BBSCloseOrOpen()

指定した位置へ掲示板を移動(要単位)
rcsbbsjs.BBSMoveTo(x, y, pos)
ページ左上を(0, 0)として、xにはx座標を、yにはy座標をそれぞれ単位付き(px、%、…)で指定
posでCSSのposition属性('relative'、'absolute'、'fixed')を指定します。

指定した分量だけ掲示板を移動(要単位、pxか%)
rcsbbsjs.MoveBy(x, y, pos)
xにはx座標を、yにはy座標をそれぞれ単位付き(pxか%)で指定
posでCSSのposition属性('relative'、'absolute'、'fixed')を指定します。

掲示板を左、中央、右寄せする
rcsbbsjs.AlignBBS(align)
alignには、default、left、center、rightを指定します。
defaultは何も行いません。left、center、rightはそれぞれ、左、中央、右寄せします。
また、20%などと%指定もできるので、中途半端な位置へも移動させられます。

top、right、bottom、leftの指定位置に移動 rcsbbsjs.PositionBBS(t, r, b, l, pos)
tがCSSのtop、rがright、bがbottom、lがleftと同様の意味で、指定した位置に掲示板を移動します。
なにも値を入れない場合、そのままの状態が維持されます。
(例えば、上下に移動させずに横にだけ移動させたい場合は、rcsbbsjs.PositionBBS('', '', '', '10px', 'relative')等としてください。)
posでCSSのposition属性('relative'、'absolute'、'fixed')を指定します。

掲示板のposition属性を変更
rcsbbsjs.ChangePosition(pos)
posでCSSのposition属性('relative'、'absolute'、'fixed')を指定します。

掲示板を半透明化
rcsbbsjs.Opacity(opacity)
opacityには透明度を1〜0で指定します。(不透明1〜0透明)

指定したサイズに掲示板のサイズを変更(要単位、pxか%)
rcsbbsjs.BBSResizeTo(x, y)
xにはx座標を、yにはy座標をそれぞれ単位付き(pxか%)で指定

指定した分量だけ掲示板のサイズを変更(要単位、pxか%)
rcsbbsjs.BBSResizeBy(x, y)
xにはx座標を、yにはy座標をそれぞれ単位付き(pxか%)で指定

掲示板の位置を最初の状態にリセット
rcsbbsjs.PositionReset()

掲示板のサイズを最初の状態にリセット
rcsbbsjs.SizeReset()

掲示板の状態を最初の状態にリセット
rcsbbsjs.StateReset()


各ブラウザでのJavaScript動作確認状況

Firefox1.5以上で最適化します。
?がついているものは動作確認してないけどおそらく。。というもの。
Safariや、各種Mac用ブラウザでの確認はしていません。
Safariでは十中八九動きませんが、MacでもSafari以外なら動く可能性が高いです。
目標は全ブラウザでエラーの無い動作(`・ω・´)
◎は特に最適な動作、○は正常に動作、△は動作するけど不具合あり、×は全く動作しない(またはブラウザ側にその機能が無い)の意味です。
Lite Mode のみが○のブラウザでは、最初から Lite Mode が選択されます。

  リアルタイムリロード 閲覧者名表示関連 半透明化処理 掲示板移動、リサイズ等のその他の動作 Lite Mode
Firefox 2.0.0.4
Firefox 1.5.0.12
Gran Paradiso 3.0a6(Firefox 3.0α6)
(Gecko 1.8〜1.9.x)
IE 7.0
IE 6.0
IE 5.5
(Sleipnir 2.5.13)
(Lunascape 4.2.2.2)
IE 5.0 ×
IE 4.0 × × × × ×(対応予定)
IE 4.0未満 × × × × ×
Firefox 1.0.8
Mozilla 1.7.13
Netscape 8.1.3
(Gecko 1.7.x)
Netscape 7.1
Mozilla 1.2〜1.6
(Gecko 1.2〜1.6.x)
×
Mozilla 1.1
(Gecko 1.1.x)
×
Mozilla 1.0.1
Mozilla 0.9.7
(Gecko 0.9.7〜1.0.x)
×
Netscape 6.2
(Gecko 0.9〜0.9.6)
× × ×
Mozilla 0.6〜0.8(Gecko 〜0.8.x) × × × × ×
Netscape 4.7 × × × × ×(対応予定)
Netscape 4未満 × × × × ×
Opera 9.21
Opera 9.10
Opera 9.02
Opera 8.54
Opera 8.01
×
Opera 7.54
Opera 7.20
× × ×
Opera 7.02 × × ×
Opera 6.06 × × × ×
Konqueror 3.5.6
Konqueror 3.4.0
×

著作権・利用条件


動作確認環境

OS:Xubuntu (Ubuntu 6.10 karnel 2.6.17-11)
CPU:Athlon X2 3800+ (2.00GHz)
Memory:512MB
Server Soft:Apache 2.0.55
Perl 5.8.8 (x86_64-linux-gnu-thread-multi)

OS:Windows XP Professional SP2
CPU:Pentium4 3.40GHz
Memory:1024MB
Server Soft:AN HTTPD 1.42p
Perl 5.8.7 (Cygwin)
Perl 5.8.8 (ActivePerl MSWin32-x86-multi-thread build 817)
Perl 5.6.1 (ActivePerl MSWin32-x86-multi-thread build 638)
Perl 5.005_03 (ActivePerl MSWin32-x86-object build 522)
Perl 5.004_71 (ActivePerl MSWin32-x86)