59bbs 2.1 仕様書 -------- ■ディレクトリ構成 / Plugins --- プラグイン Lib --- モジュール Lib/App --- アプリケーションモジュール data/ --- トピックデータ keyword --- キーワードデータ search --- 全文検索インデックス system/ tmpl --- テンプレートファイル user --- ユーザーディレクトリ session --- セッション管理ファイル ---------- ■59bbs 2.1 プログラム構成(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 2.1 モジュール構成 /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 2.1 テンプレートファイル 59bbs 2.1 で使用しているテンプレートファイルは以下の通りです。 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 --- テンプレート編集画面 remind.tmpl --- パスワードリマインダー画面 leave.tmpl --- 退会画面 rss2.tmpl --- RSSフィード用テンプレート sitemap.tmpl --- サイトマップ用テンプレート ---------- ■59bbs 2.1 システムファイル仕様 --- ユーザー情報ファイル ファイル名:{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 FEEDURL 個人ブログ等のフィードURL 13 AMAZONID AmazonアソシエイトID 14 BOOKMARKID ブックマークID(ネタリスト連携) --- セッション情報ファイル ファイル名:{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 2.1 データファイル仕様 --- トピックデータファイル ファイル名:{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 キーワードリスト 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 BOOKMARKLIST キーワードに関連付けられているブックマークのリスト 6 BOOKMARNUM キーワードに関連付けられているブックマークの数 7 REFERNUM 参照回数 8 EDITOR 編集権を持つユーザーのリスト(未使用) 9 TEXT キーワードの説明(未使用) 10 LASTUPDATE 最終更新日時(未使用) 11 AD1 キーワードの広告コード1(未使用) 12 AD2 キーワードの広告コード2(未使用) 13 AD3 キーワードの広告コード3(未使用) ---------- ■59bbs 2.1 のインストール方法 59bbs 2.1 のインストールと初期設定の方法は以下の通りです。 1.書庫ファイルの取得と解凍 59bbs 2.1 の書庫ファイル(zip形式)を取得し、任意のディレクトリで解凍します。 2.config.cgiの変更 config.cgi の内容を使用するサーバー環境や用途に応じて変更します。詳細は 59bbs 2.1 config.cgi 仕様を 参照してください。 3.ファイルのアップロード FTPソフトなどを使用して59bbsのファイル(.htaccess、basic.css、*.cgi及びLib配下のモジュール、 Plugins配下のプログラム、data配下のデータファイル、system配下のシステムファイル等)をWebサーバーに アップロードします。転送モードは、*.jpgファイルはバイナリーで、それ以外は全てアスキー、無変換で転送します。 4.ファイル属性の変更 index.cgi、rcvtb.cgi、xmlrpc.cgiの属性を、使用するサーバーでCGIとして実行できるファイル属性(755、700等) に変更します。 5.Perlモジュールのアップロード 59bbsを動作させるにはPerlモジュールとして、CGI、Jcode、MIME、SOAP-Lite等が必要です。 日本でサービスを提供してしているレンタルサーバーであれば、CGI、Jcode、MIMEについては、 インストールされていないということはほとんどないため、これらのモジュールをインストールする必要はありませんが、 SOAP-Liteについてはインストールされていない場合が多いようです。 SOAP-Liteがインストールされていない場合は、http://search.cpan.org/~byrne/SOAP-Lite-0.60a/ から、 SOAP-Lite-0.60a.tar.gzををダウンロードし、任意のディレクトリで解凍します。解凍されたディレクトリ中の SOAP、 XMLRPCディレクトリをFTPソフトを使用して59bbsが動作するディレクトリにアップロード(転送モード:アスキー、 無変換)します。 7.管理者パスワードの変更 59bbsが動作するWebサーバーのURLをブラウザで開き、ユーザーID:adimn、パスワード:0000でログインします。 初期状態のパスワードのままでは誰でも管理者としてログインできてしまうので、パスワード変更画面からadimn のパスワードを変更します。 8.最初のトピックの変更 トップページ(検索条件を指定せずに検索ボタンを押下したときに表示されるページ)に表示されている 「59bbs(ゴクビービーエス)とは」を編集して、あなたのサイトを説明する内容の記事に変更します。 ---------- ■59bbs 2.1 のconfig.cgi 仕様 59bbs 2.1 の 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:追加する $index_rebuild = 0; リビルド時に検索用インデックスの再構築を行なうかどうかを指定します。 0:再構築しない 1:再構築する $good_point = 4; コメントの評価が良い場合の加算ポイント $normal_point = 1; コメントの評価が普通、トラックバックの場合の加算ポイント $bad_point = -2; コメントの評価が悪い場合の加算ポイント $static_html = 0; トピック詳細ページを静的HTMLファイルで出力するかどうかを指定します。 0:出力しない 1:出力する ---------- 投稿ブックマークレット 以下のアンカーをブックマークレットとしてブラウザニ登録することで、表示中のWebページを引用し て投稿できます。(YourDmainNameの部分を置き換えてください。) 匿名投稿用 匿名で投稿 ログイン時の投稿用 掲示板に投稿 ---------- 59bbs 2.0 から 2.1 への移行方法 59bbs 2.0 のLib、Plugins、system/tmpl 配下のファイル、およびbasic.cssを、2.1のファイルで 上書きします。なお、データ仕様の変更はありません。 ----------