Speedy BBS

利用規約

  1. このスクリプトはフリーで提供されています。個人・法人・商用サイト問わず誰でも自由に利用出来ます。
  2. このスクリプトを有償でレンタルしたり、直接利益を得る目的での利用は固く禁止させて頂きます。
  3. このスクリプトの著作権表示部を削除・改竄することは出来ません。
  4. このスクリプトの再配布は禁止させて頂きます。
  5. このスクリプトは自由に改造して利用することが出来ます。ただし、改造した場合でも著作権表示部の削除・改竄は絶対に禁止です。当方の著作権表示に、改造者の著作権表示を追加する形にして下さい。
  6. 改造とは、このスクリプトを元にして何かの機能を追加することだけではなく、HTML 部分のソースの書き換え、ルーチンの書き換え等を含みます。見た目や HTML 部分のソースが異なるだけで、内部的にはほぼ同一のスクリプトなのに「一から自分が作った」かのように見せかけたりはしないで下さい
  7. このスクリプトは必ずしも全ての環境で動作することを保障しません。
  8. このスクリプトを利用した結果いかなる損害・被害等が発生したとしても作者は一切の責任を負いません。
  9. 当方に著しく不利益があると判断した場合、スクリプトの使用を一方的に中止させて頂くことがあります。
  10. この「利用規約」は、事前予告なく加筆・改変されることがあります。

ファイルをダウンロードした時点で、これらの利用規約に同意したものと見なします。

サンプル

動作確認をしたフリーサーバー

情報求ム。

特徴

ソースは XHTML 1.0 + CSS 2 の仕様に沿うように書いてますが、どこかおかしい部分があったら是非教えて下さい。全てのデザインはスタイルシートによって行っているので、CSS の知識があれば自由に変更出来ると思います。

欠点

ダウンロード

お好きな形式のファイルを選択してダウンロードして下さい(SSIが使用可能なら、SSI 版を選択することを推奨致します)。

CGI 版
sbbs.zip sbbs.lzh sbbs.rar
SSI 版
sbbs_s.zip sbbs_s.lzh sbbs_s.rar

設置して頂いているサイト

「Speedy BBS」を実際にご利用なさっている方々のサイトです。

利用方法

「sbbsinit.cgi」をメモ帳などのテキストエディタで開いて編集して下さい。Perl のパスはお使いのサーバに合わせて下さい。デフォルトでは #!/usr/local/bin/perl になってます。

CGI 版

パーミッション。基本的には「705」「606」等の指定になりますが、サーバーによっては「700」「600」の場合もあります。サーバ側で指定がある場合はそちらに従って下さい。

/ sbbs [701] / -- sbbs.cgi      [705 or 700] - (メインスクリプト)
               -- sbbslog.cgi   [606 or 600] - (ログ記録用)
               -- sbbscount.cgi [606 or 600] - (カウント記録用)
               -- sbbstmp.html  [606 or 604] - (テンプレート HTML 見本)
               -- sbbsinit.cgi  [604 or 600] - (初期設定用)
               -- sbbs.lock     [602 or 600] - (書き込み凍結用)
               -- sbbs.css      [604] - (メインスタイルシート)
               -- sbbscolor.css [604] - (文字色用スタイルシート)
               -- sbbstmp.css   [604] - (テンプレート HTML スタイルシート見本)
               -- sbbs.js       [604] - (JavaScript ファイル)
               -- jcode.pl      [604] - (日本語変換ライブラリ)

Jcode.pm がサーバー側に導入されている場合はjcode.plは不要なので削除して構いません。また、カウンタを使用しない場合は sbbscount.cgi は不要です。さらにテンプレートHTMLを別途指定した場合には「sbbstmp.html」も不要です。

SSI 版

パーミッション。基本的には「705」「606」等の指定になりますが、サーバーによっては「700」「600」の場合もあります。サーバ側で指定がある場合はそちらに従って下さい。

 / sbbs [701] / -- sbbs.cgi      [705 or 700] - (メインスクリプト)
                -- sbbslog.cgi   [606 or 600] - (ログファイル)
                -- sbbscount.cgi [606 or 600] - (カウント記録用)
                -- sbbs.txt      [606 or 604] - (SSI 用ログ)
                -- sbbsinit.cgi  [604 or 600] - (初期設定用)
                -- sbbs.lock     [602 or 600] - (書き込み凍結用)
                -- sbbstmp.shtml [604] - (SSI 使用 HTML 見本)
                -- sbbs.css      [604] - (メインスタイルシート)
                -- sbbscolor.css [604] - (文字色用スタイルシート)
                -- sbbstmp.css   [604] - (SSI 表示部用スタイルシート見本)
                -- sbbs.js       [604] - (JavaScript ファイル)
                -- jcode.pl      [604] - (日本語変換ライブラリ)

Jcode.pm がサーバー側に導入されている場合はjcode.plは不要なので削除して構いません。また、カウンタを使用しない場合は sbbscount.cgi は不要です。さらに SSI 使用 HTML を別途指定した場合には「sbbstmp.shtml」も不要です。

テンプレート HTML の利用方法

ハッキリ言って難しいです!! 初心者の方には圧倒的にオススメ出来ません。初期設定のままで使うのならばそれほど問題ないとは思いますが、例えばトップページ(index.html)などにBBSを埋め込んで使う場合などには設定の変更が必要になります。まず、「sbbsinit.cgi」を開いて必要な初期設定を済ませて下さい。それが間違いの無いように終わったら、テンプレート HTML を開いて掲示板を埋め込みたい位置のソースに、

<!-- %Speedy BBS Start% -->
<!-- %Speedy BBS End% -->

と記述して下さい。この2つのコメントタグに挟まれた領域に掲示板が埋め込まれます。さらにHTMLソースのHEAD部に

<link rel="stylesheet" href="sbbs.cgiと同じフォルダにあるsbbstmp.cssのパス" type="text/css">
<script type="text/javascript" src="sbbs.cgiと同じフォルダにあるsbbs.jsのパス"></script>

と記述して下さい。これらの記述がないと、文字色の設定及びJavaScriptによるクッキーの設定が反映されません。テンプレートHTMLの掲示板埋め込み部の見栄えは、このスタイルシートを修正することによって行うことが出来ます。

また、<body> タグに以下のように2つのonloadイベントを追加して下さい。

<body onload="getCookie(); changeClass();">

これらの作業が完了したらテンプレートHTMLをアップロードしてパーミッションを「606 or 604」にして下さい。正常に動くかどうか、sbbs.cgiにアクセスして適当に書き込んでみて下さい。書き込んだ後にテンプレートHTMLに移動して掲示板が埋め込まれているようでしたら設置は成功です。

使用IDについて

DIVの "speedy-bbs" と、名前入力フィールド "name"、文字色セレクトボックスの "color"、メッセージ入力フィールドの "message" 、クッキーチェックボックスの "cookie"をIDとして使っています。 これらのIDはテンプレートHTML内に複数回出現しないように注意して下さい。name属性で同じものを付けないようにも注意して下さい。もし複数回出現してしまうと、JavaScriptが挙動不審になる可能性があります。クラスはボタンの input.submit, input.reset と日付部分の span.date を使っています。

利用上の注意(CGI版)

テンプレートHTMLのサイズがあまり大きくなり過ぎないように注意すること。具体的なところは検証していませんが、出来れば50〜80KB程度に抑えたほうがサーバー負荷を考慮すると良いと思います。また、テンプレートHTMLのページをFTPなどで更新すると掲示板が一時的に消えますので、掲示板本体の管理画面から「テンプレート HTML に出力」を一回実行する必要があります。意外とこの作業を忘れることが多いのでご注意を。

SSI 版の利用方法

基本的には上記の「テンプレート HTML の利用方法」と同じことをするのですが、違いが一箇所だけあります。

<!-- %Speedy BBS Start% -->
<!-- %Speedy BBS End% -->

上記の記述は必要ありません。その代わりに

<!--#include file="sbbs.cgiと同じフォルダにあるsbbs.txtのパス" -->

と記述して下さい。それ以外はCGI版の利用方法と全く同じです。

ちょっと改造 & FAQ

タグの属性を無視って?

例えば

<img src="img.gif" width="100" height="100" alt="">

というIMG要素があったとします。この場合の属性は

src="img.gif" width="100" height="100" alt=""

の部分になります。これを全て無視するので、上記のIMG要素をメッセージに書いて投稿した場合は、

<img>

になります。

具体的な理由は書きませんが、主にセキュリティ対策でこのような仕様になっています。 IMGやAタグを許可しても意味がありませんので、許可しないことを推奨致します。 また、開始タグと終了タグの順番が逆だったりしたらタグとして扱いませんので安全に使用可能です。 ちなみに、開始タグと終了タグのペアで正当性を判断している関係上、以下のような終了タグを持たないタグを許可しても正常に動作しませんので悪しからず。

meta br col link base img area param hr input frame

まあ、普通は特に許可する必要のないタグ達だと思うのですが…。

文字色を追加するには?

「メモ帳」でsbbsinit.cgiを開きます。下の方の「$INIT{'COLOR'} = 」の次の行から色の定義が始まります。

$INIT{'COLOR'} = {
  'black'     => 'ブラック',
  'gray'      => 'グレイ',
# 'silver'    => 'シルバー',
# 'white'     => 'ホワイト',
  'red'       => 'レッド',
# 'yellow'    => 'イエロー',
  'lime'      => 'ライム',
# 'aqua'      => 'アクア',
  'blue'      => 'ブルー',
  'fuchsia'   => 'ピンク',
  'maroon'    => 'マルーン',
  'olive'     => 'オリーブ',
  'green'     => 'グリーン',
  'teal'      => 'ティール',
  'navy'      => 'ネイビー',
  'purple'    => 'パープル',
  'orange'    => 'オレンジ',
  'tomato'    => 'トマト',
  'chocolate' => 'チョコレート'
};

「gold」を追加してみましょう。

$INIT{'COLOR'} = {
  'black'     => 'ブラック',
  'gray'      => 'グレイ',
# 'silver'    => 'シルバー',
# 'white'     => 'ホワイト',
  'red'       => 'レッド',
# 'yellow'    => 'イエロー',
  'lime'      => 'ライム',
# 'aqua'      => 'アクア',
  'blue'      => 'ブルー',
  'fuchsia'   => 'ピンク',
  'maroon'    => 'マルーン',
  'olive'     => 'オリーブ',
  'green'     => 'グリーン',
  'teal'      => 'ティール',
  'navy'      => 'ネイビー',
  'purple'    => 'パープル',
  'orange'    => 'オレンジ',
  'tomato'    => 'トマト',
  'chocolate' => 'チョコレート', # ここにカンマを付けるのを忘れずに!
  'gold'      => 'ゴールド'
};

基本的にはこのように、「カンマ(,)」を付けて追加していきます。「=>」の左側がCSSのクラス名と <option> タグの value 属性を兼ねています。なので1文字目が半角アルファベットから始まる名前にして下さい。2文字目以降は半角英数字と「_」「-」を使えますが、普通に定義されている名前を付けるのが分かりやすくて良いだろうと思います。右側は <option>タグのテキスト部になります。こちらはお好みで自由に設定して下さい。使わない色は行頭に「#」を付けてコメントするか、行ごと消してしまえば良いです。最初からコメントされているのは、デフォルトの背景色「白」に対して見えにくい色です。さらに「sbbscolor.css」を開いて一番下に以下のように追加します。

.gold {
  color: #ffd700;
  background-color: transparent;
}

これで完了。ちょっとやる事が多いですが、この要領で文字色は自由に追加出来ます。

メッセージ入力フィールドの背景色を変えるには?

sbbs.jsを右クリックの「編集」で開き、「メッセージ入力フィールドの背景色」を変更すればOKです。

管理者専用で使うには?

初期設定の「書き込み凍結時に表示するメッセージ」をお好みのモノに変更したら、管理画面から「掲示板の凍結」を行えばOKです。その後は管理画面から投稿して下さい。

通常画面のHTML部分を編集するには?

スクリプト中で通常画面のHTMLが出現する主な箇所は、「ヘッダー部」「通常画面ボディ部」「投稿フォーム部」「管理用フォーム部」「フッター部」の5つのサブルーチンです。なのでこれらを分かる範囲で編集すれば良いかと思います。基本的に「$xxx」のような「$」から始まるモノは変数なのでそのままにしておく方向で。

テンプレートHTMLの出力部分を編集するには?

スクリプト中でテンプレートHTMLのソースが出現する箇所は、「テンプレート HTML 書き込みモード(SSI 版はSSI 用ログファイル書き込みモード)」のみです。なので、この部分を分かる範囲で編集すれば良いかと思います。基本的に「$xxx」のような「$」から始まるモノは変数なのでそのままにしておく方向で。

テンプレートHTMLのクッキーの設定を変えるには?

sbbs.jsを右クリックの「編集」で開き、「テンプレート HTML 用クッキーの名前」と「テンプレート HTML 用クッキーの有効期限」の部分を変更すればOKです。

テンプレートHTML埋め込みはJavaScriptでやれば済むんじゃない?

ハイ。その方法でも可能です。が、ユーザーがJavaScriptをOffにしていた場合は掲示板が表示されなくなるという致命的な欠点があります。NOSCRIPT内に掲示板へのリンクを張って代替処置をする方法もありますが、JavaScriptの使用可否に関わらず同じ状態で閲覧出来ることが最善であると考えているため、当サイトでは多少面倒ながらもHTMLファイルに直接ログを書き込む方式を取っています。なお、SSI版につきましてはテキストファイルに出力部分のみを書き出しHTML文章で表示する仕組みになっているので、わざわざJavaScriptで表示する必要はないと思います。

謝辞

jcode.pl の著作権は歌代 和正さん(http://www.srekcah.org/jcode/)にあります。素晴らしいライブラリの提供に感謝します。

履歴

2004-05-30 v1.85
前バージョンから、sbbsinit.cgi, sbbs.cgi を修正。
2004-04-22 v1.84
前バージョンから、sbbsinit.cgi, sbbs.cgi を修正。
2004-04-22 v1.83
前バージョンから、sbbsinit.cgi, sbbs.cgi を修正。sbbslock/ ディレクトリは不要に。sbbs.lock を新規添付。
2004-04-21 v1.82
前バージョンから、sbbsinit.cgi, sbbs.cgi, sbbs.css を修正。
2004-04-17 v1.81
前バージョンから、sbbsinit.cgi, sbbs.cgi, sbbs.css を修正。
2004-04-06 v1.8+
2004-04-04 v1.8
2004-03-30 v1.7c
2004-03-26 v1.7b
2004-03-20 v1.7a
2004-03-12 v1.7
2004-03-11 v1.6a
2004-02-29 Ver 1.6
2004-02-28 Ver 1.5b
2004-02-24 Ver 1.5a
2004-02-21 Ver 1.5
2004-02-17 Ver 1.4
2004-02-14 Ver 1.3a
2004-02-12 Ver 1.3
2004-02-10 Ver 1.2b
2004-02-08 Ver 1.2a
2004-02-06 Ver 1.2
2004-02-05 Ver 1.1
2004-02-03 Ver 1.0
2004-02-01 試作品1号

▲ページ先頭に戻る