59bbs 3.0 仕様書 ---------- ■59bbs 3.0 での仕様変更 ・トピックデータへのブックマークURL項目の追加 ・検索結果ページ、トピック詳細ページのユーザーインタフェースの改良。 ・トピック投稿時の入力支援機能の追加。 ・ユーザー情報ファイルへの項目追加。 -------- ■ディレクトリ構成 / Plugins --- プラグイン Lib --- モジュール Lib/App --- アプリケーションモジュール data/ --- トピックデータ keyword --- キーワードデータ search --- 全文検索インデックス system/ tmpl --- テンプレートファイル user --- ユーザーディレクトリ session --- セッション管理ファイル ---------- ■59bbs 3.0 プログラム構成(CGIファイル) / index.cgi --- コントロールプログラム rcvtb.cgi --- トラックバック受信インタフェース xmlrpc.cgi --- XML-RPCインタフェース(API) config.cgi --- システム設定ファイル Plugins/ session.cgi --- セッション管理、リストページ表示 topic.cgi --- トピックの新規作成、編集 comment.cgi --- コメントの投稿 link.cgi --- 関連情報の新規作成、編集、削除 user.cgi --- ユーザー管理機能(新規登録、ユーザー情報変更) userlist.cgi --- ユーザー管理機能(ユーザー一覧の表示) password.cgi --- パスワード変更 template.cgi --- テンプレートおよびスタイルシート編集機能 register.cgi --- ユーザー登録 content.cgi --- コンテンツの再構築 ads.cgi --- 広告、お知らせの設定 filter.cgi --- フィルター設定 pinglist.cgi --- Ping設定 ---------- ■59bbs 3.0 モジュール構成 /Lib DateTime.pm --- 日時の取得 Calendar.pm --- カレンダーの作成 Logger.pm --- ログ出力 String.pm --- 文字列操作 Mail.pm --- メール送信 Ping.pm --- 更新Pingの送信、トラックバックPingの送信 User.pm --- ユーザー情報の管理 Filter.pm --- フィルターの管理 Error.pm --- エラーメッセージの表示 /Lib/App Search.pm --- 全文検索インデックスの管理、全文検索 Topic.pm --- トピックの管理、トピック詳細ページの生成 Archive.pm --- アーカイブデータ、更新情報の管理 Keyword.pm --- キーワード管理 Ads.pm --- デフォルト広告の管理 Conf.pm --- システム設定の取得 ---------- ■59bbs 3.0 テンプレートファイル 59bbs 3.0 で使用しているテンプレートファイルは以下の通りです。 system/tmpl list.tmpl --- 検索結果ページ detail.tmpl --- トピック詳細ページ topic.tmpl --- トピック投稿、編集画面 link.tmpl --- 関連リンク登録、編集画面 confirm.tmpl --- 確認画面 message.tmpl --- メッセージ表示画面 login.tmpl --- ログイン画面 register.tmpl --- ユーザー登録画面 user.tmpl --- ユーザー登録、編集画面 userlist.tmpl --- ユーザー管理画面 password.tmpl --- パスワード変更画面 ads.tmpl --- 広告登録、編集画面 filter.tmpl --- フィルター設定画面 pinglist.tmpl --- Ping設定画面 template.tmpl --- テンプレート編集画面 content.tmpl --- 再構築オプション指定画面 rss2.tmpl --- RSSフィード用テンプレート sitemap.tmpl --- サイトマップ用テンプレート ---------- ■59bbs 3.0 システムファイル仕様 --- ユーザー情報ファイル ファイル名:{USERID}/profile.txt ユーザーの一覧とユーザーに関する情報を格納するためのファイル。ユーザー認証に使用する。 番号 項目 概要 1 USERID 英数字 2 PASSWORD 英数字 3 MAILADDR メールアドレス 4 HPURL ホームページURL 5 USERNAME ユーザー名 6 AUTH 権限 0:特権 1:一般 7 STATUS 0:無効 1:有効 8 AD1 ユーザー固有の広告コード1(幅468) 9 AD2 ユーザー固有の広告コード2(幅468) 10 AD3 ユーザー固有の広告コード3(幅300) 11 PARTS ユーザー固有のブログパーツ 12 MOBILE モバイル広告コード (未使用) 13 AFFILIATEID AmazonアソシエイトID等 (未使用) 14 APPACCOUNT APP連携アカウント情報 (未使用) 15 OPTIONS オプション設定 (未使用) 16 PROFILE ユーザープロフィール (未使用) --- セッション情報ファイル ファイル名:{SESSIONID}.txt ユーザー毎のセッション情報を保持するするためのファイル。画面間のセッション管理に使用する。 番号 項目 概要 1 USERID 対応するセッションのユーザーID 2 IPADDR IPアドレス --- トピックカウンターファイル ファイル名:topiccounter.txt トピックIDを管理するためのカウンター。 番号 項目 概要 1 SEQ 連番 --- キーワードカウンターファイル ファイル名:keywordcounter.txt キーワードIDを管理するためのカウンター。 番号 項目 概要 1 SEQ 連番 --- フィルターファイル ファイル名:filter.txt コメントやトラックバックのフィルタリングを行うための拒否文字列やIPアドレスのリストを格納するファイル。 番号 項目 概要 1 KEYWORD フィルタリングするキーワードやIPアドレス --- Ping設定ファイル ファイル名:pinglist.txt WeblogUpdate Pingの通知先を保存するファイル。 番号 項目 概要 1 PINGURL 更新Pingの通知先URL --- 広告設定ファイル ファイル名:adlink.txt 一覧表示(検索結果ページ)や匿名投稿者により投稿されたトピックの詳細ページに表示する広告 コードを格納するファイル。 番号 項目 概要 1 AD1 広告コード1 (幅468) 2 AD2 広告コード2 (幅468) 3 AD3 広告コード3 (幅300) ---------- ■59bbs 3.0 データファイル仕様 --- トピックデータファイル ファイル名:{TOPICID}tp.data トピックのデータを格納するファイル。トピック詳細ページ、インデックスページの出力に使用する。 番号 項目 概要 1 RECTYPE レコード区分、0:カレントトピック、1:トピック履歴 2 TOPICID 0〜の整数値、0のトピックは削除不可 3 LASTDATE トピックの最終更新日 YYYY/MM/DD HH:MM:SS 4 STATUS トピックの状態 0:ドラフト 1:オープン 2:クローズ 3:制限 9:削除 5 EDITOR トピックのオーナー(トピックの管理権限をもつ) 6 HANDLE 投稿者のハンドル名 7 TITLE タイトル 8 TEXT 本文 9 COMMENTNUM コメント数 10 LINKNUM 関連リンク数 11 TRACKBACKNUM トラックバック数 12 AD1 広告コード1(幅468、記事上に表示) 13 AD2 広告コード2(幅468、記事下に表示) 14 AD3 広告コード3(幅300、サイドバーに表示) 15 POINT ポイント累計(コメント入力時、トラックバック受信時等に加算される) 16 KEYWORD 関連キーワードリスト 18 URL ブックマークURL 17 IPADDR 投稿者のIPアドレス 関連リンクレコード 番号 項目 概要 1 RECTYPE レコード区分、2:関連リンク 2 LINKID 1〜の整数値:有効な関連情報 3 TITLE リンク先のページタイトル 4 URL リンク先のページURL 5 SUMMARY 要約 コメントレコード 番号 項目 概要 1 RECTYPE レコード区分、3:コメント 2 COMMENTID 1〜の整数値 3 STATUS 0:無効、1:有効、2:承認待ち 4 POSTDATE コメントの投稿日 YYYY/MM/DD HH:MM:SS 5 AUTHOR コメントの著者(任意) 6 MAILADDR メールアドレス(任意) 7 HPURL ホームページURL(任意) 8 TEXT コメント本文 9 EVALUATE 評価(1 or 0) 10 IPADDR 投稿者のIPアドレス トラックバックレコード 番号 項目 概要 1 RECTYPE レコード区分、4:トラックバック 2 TRACKBACKID 1〜の整数値 3 STATUS 0:無効、1:有効、2:承認待ち 4 RECVDATE トラックバックの受信日時 YYYY/MM/DD HH:MM:SS 5 URL トラックバックエントリのURL 6 BLOGNAME ブログ名 7 TITLE トラックバックエントリのタイトル 8 EXCERPT トラックバックエントリの要約 9 IPADDR トラックバック元のIPアドレス --- 更新情報データファイル ファイル名:newtopic.data 新着トピックのトピックIDを時系列の逆順に保存。 番号 項目 概要 1 TOPICID トピックID --- アーカイブデータファイル ファイル名:{YYYYMM}ar.data 月別のトピック一覧データを格納するためのファイル。index.cgiの出力で使用する。 番号 項目 概要 1 TOPICID 0〜の整数値 2 LASTDATE 最終更新日時 YYYY/MM/DD HH:MM:SS --- 検索インデックスファイル ・検索時の処理速度を考慮して先頭文字毎にインデックスファイルを作成する ・アルファベットの大文字は小文字に変換してインデックスする ・アルファベット、数字、ひらがな、カタカナ、漢字以外は区切文字とみなしてインデックスしない ・全角アルファベット、全角数字は半角数字に変換する ・文字エンコードはシフトJISで格納する 先頭がアルファベット ファイル名:alpha(A)l(Length).data --- A : a 〜 z 先頭が数字 ファイル名:num(N)l(Length).data --- N : 0 〜 9 先頭がひらがな ファイル名:hiragana(N)l(Length).data --- N : 0 〜 9(あ行 か行 さ行 た行 な行 は行 ま行 や行 ら行 わ行) 0 829F - 82A8 ぁ あ ぃ い ぅ う ぇ え ぉ お 1 82A9 - 82B2 か が き ぎ く ぐ け げ こ ご 2 82B3 - 82BC さ ざ し じ す ず せ ぜ そ ぞ 3 82BD - 82C7 た だ ち ぢ っ つ づ て で と ど 4 82C8 - 82CC な に ぬ ね の 5 82CD - 82DB は ば ぱ ひ び ぴ ふ ぶ ぷ へ べ ぺ ほ ぼ ぽ 6 82DC - 82E0 ま み む め も 7 82E1 - 82E6 ゃ や ゅ ゆ ょ よ 8 82E7 - 82EB ら り る れ ろ 9 82EC - 82F1 ゎ わ ゐ ゑ を ん 先頭がカタカナ ファイル名:katakana(N)l(Length).data --- N : 0 〜 9(ア行 カ行 サ行 タ行 ナ行 ハ行 マ行 ヤ行 ラ行 ワ行) 0 8340 - 8349 ァ ア ィ イ ゥ ウ ェ エ ォ オ 1 834A - 8353 カ ガ キ ギ ク グ ケ ゲ コ ゴ 2 8354 - 835D サ ザ シ ジ ス ズ セ ゼ ソ ゾ 3 835E - 8368 タ ダ チ ヂ ッ ツ ヅ テ デ ト ド 4 8369 - 836D ナ ニ ヌ ネ ノ 5 836E - 837C ハ バ パ ヒ ビ ピ フ ブ プ ヘ ベ ペ ホ ボ ポ 6 837D - 8382 マ ミ ム メ モ 7 8383 - 8388 ャ ヤ ュ ユ ョ ヨ 8 8389 - 838D ラ リ ル レ ロ 9 838E - 8396 ヮ ワ ヰ ヱ ヲ ン ヴ ヵ ヶ 先頭が漢字 ファイル名:kanji(N)l(Length).data --- N : 0 〜 F 0 889F - 89FF 1 9000 - 91FF 2 9200 - 93FF 3 9400 - 95FF 4 9600 - 97FF 5 9800 - 99FF 6 9A00 - 9BFF 7 9C00 - 9DFF 8 9E00 - 9FFC 9 E000 - E3FF A E400 - E7FF B E800 - E9FF C EA00 - EBFF D EC00 - ECFF E ED00 - EDFF F EE00 - EEE0 全文検索キーワードを管理するための索引ファイル。 番号 項目 概要 1 KEYWORD キーワード 2 TOPICLIST トピックリスト(キーワードを含むトピックのリスト、トピックIDを":"区切で格納) 3 TOPICNUM トピック数(キーワードを含むトピック数) --- キーワードデータファイル ファイル名:keyword.data トピック及に関連キーワードとして指定されたキーワードを管理するためのファイル。 番号 項目 概要 1 KEIWORDID キーワードID 2 KEIWORDITEM キーワード項目 3 TOPICLIST キーワードに関連付けられているトピックのリスト 4 TOPICNUM キーワードに関連付けられているトピックの数 5 REFERNUM 参照回数 ---------- ■59bbs 3.0 のインストール方法 59bbs 3.0 のインストールと初期設定の方法は以下の通りです。 1.書庫ファイルの取得と解凍 59bbs 3.0 の書庫ファイル(zip形式)を取得し、任意のディレクトリで解凍します。 2.config.cgiの変更 config.cgi の内容を使用するサーバー環境や用途に応じて変更します。詳細は 59bbs 3.0 config.cgi 仕様を 参照してください。 3.ファイルのアップロード FTPソフトなどを使用して59bbsのファイル(.htaccess、*.cgi及びLibディレクリ、Pluginsディレクトリ、 JSディレクトリ、dataディレクトリ、systemディレクトリ等)をWebサーバーにアップロードします。転送モード は、*.jpgファイルはバイナリーで、それ以外は全てアスキー、無変換で転送してください。 4.ディレクトリの作成 config.cgiの$data_dirの配下にsearch、keywordの各ディレクトリを作成し属性を755に変更します。また、 $system_dirの配下にsessionディレクトリを作成し属性を755に変更します。 5.ファイル属性の変更 index.cgi、xmlrpc.cgi、rcvtb.cgiを、CGIとして実行できるファイル属性(755)に変更します。 6.外部モジュールのアップロード 59bbsを動作させるには外部モジュールとして、CGI、Jcode、MIME、SOAP-Lite、Encode等が必要です。 日本でサービス提供してしているレンタルサーバーであれば、CGI、Jcode、MIMEについてはインストールされて いないということはまずないですが、SOAP-Liteについてはインストールされていない場合が多いようです。 EncodeはPerl 5.8以上であれば通常は利用できます。 SOAP-Liteがインストールされていない場合は、http://search.cpan.org/~byrne/SOAP-Lite-0.60a/ から、 SOAP-Lite-0.60a.tar.gzををダウンロードし、任意のディレクトリで解凍します。解凍されたディレクトリ中の SOAP、 XMLRPCディレクトリをFTPソフトを使用してドキュメントルートととなるディレクトリにアップロード (転送モード:アスキー、無変換)します。 7.管理者パスワードの変更 59bbsが動作するWebサーバーのURLをブラウザで開き、ユーザーID:adimn、パスワード:0000でログインします。 初期状態のパスワードのままでは誰でも管理者としてログインできてしまうので、ユーザー管理画面からadimn のパスワードを変更します。 8.最初のトピックの変更 トップページ(検索条件を指定せずに検索ボタンを押下したときに表示されるページ)に表示されている 「59bbs(ゴクビービーエス)とは」を編集して、あなたのサイトを説明する内容の記事に変更します。 ---------- ■59bbs 3.0 のconfig.cgi 仕様 59bbs 3.0 の config.cgi で設定される設定値の説明です。 $system_dir = "../system"; テンプレート、ユーザー一覧ファイル、トピックカウンターファイル等が格納されるディレクトリです。 Webディレクトリの外側にディレクトリを作成し、そのディレクトリを相対パスで設定します。 $data_dir = "../data"; 各種データファイルが格納されるディレクトリです。 Webディレクトリの外側にディレクトリを作成し、そのディレクトリを相対パスで設定します。 $docroot_dir = 'your site url'; 59bbsが動作するディレクトリで、CGIファイル、HTMLファイル、スタイルシートなどを配置します。 $notify_mail = 0; メールで通知するかどうか(0:非通知 1:通知)の設定です。 コメントが書き込まれたとき、トラックバックが付いたときにメールで通知するかどうかを指定します。 $sendmail_path = '/usr/sbin/sendmail'; sendmailのパスです。59bbsを運用するサーバー環境に合せて変更します。 $admin_address = 'your mail address'; Webサイトの管理者のメールアドレスを指定します。 $excerpt_length = 200; トラックバック送受信時の要約の長さを指定します。 $summary_length = 150; トピックを要約する際の長さを指定します。 $anonymous = "名無しさん"; トピック及びコメントの投稿者名が未入力の場合に、投稿者名として表示される文字列を設定します。 $site_title = "サイトタイトル"; 59bbsを運用するサイトの名前を設定します。 $sub_title = "サイトサブタイトル"; 59bbsを運用するサイトのサブタイトルを指定します。 $new_item_num = 100; 更新情報データとして保持するトピック数を指定します。 $open_item_num = 0; 一覧ページに全文表示された状態で表示するトピックの先頭からの数を指定します。 $topic_num = 10; 更新情報リストに表示するトピックの数を表示します。 $comment_target = "target=\"_blank\""; コメント中のアンカータグでの「target="_blank"」を指定します。 $trackback_target = "target=\"_blank\""; トラックバックのアンカータグでの「target="_blank"」を指定します。 $link_target = ""; 関連リンクのアンカータグでの「target="_blank"」を指定します。 $result_count = 20; 一覧ページで1ぺーじに表示するトピックの数を指定します。 $default_status = 1; 新規投稿時のデフォルトステータスを指定します。 0:ドラフト 1:オープン 2:クローズ 3:承認 $date_update = 0; トピック更新時に日時を更新するかどうかを指定します。 0:更新しない 1:更新する $add_update = 0; トピック更新時に更新情報に追加するかどうかを指定します。 0:追加しない 1:追加する $good_point = 4; コメントの評価が良い場合の加算ポイント $normal_point = 1; コメントの評価が普通、トラックバックの場合の加算ポイント $bad_point = -2; コメントの評価が悪い場合の加算ポイント $static_html = 0; トピック詳細ページを静的HTMLファイルで出力するかどうかを指定します。 0:出力しない 1:出力する $free_signup = 1; 不特定ユーザーのユーザー登録を受け付けるかを指定します。0:受け付けない 1:受け付ける ---------- ■59bbs 3.0 用ブックマークレット 以下のアンカーをブックマークレットとして登録することで、表示中のWebページを簡単にブックマークできます。 ブックマーク ----------