-------------------------------------------------------------------------------------------------------------- スレッドフロート型掲示板 ぜろちゃんねるスクリプト 仕様書 兼 取扱説明書 version.1.00 -------------------------------------------------------------------------------------------------------------- ■ 目次 -------------------------------------------------------------------------------------------------------------- ■ はじめに ... 60 ■ 機能 ... ■ 動作環境 ... 1.必須環境 ... 2.推奨環境 ... ■ 設置方法 ... 1.簡易設置方法 ... 2.詳細設置方法 ... 3.設置例 ... 3.1.xreaでの設置 ... 3.2.iswebでの設置 ... ■ 標準ディレクトリ構成 ... ■ モジュール ... ■ 各種ファイル説明 ... 1.datファイル ... 2.subject一覧ファイル ... 3.掲示板設定ファイル ... 4.掲示板情報ファイル ... 5.バナー情報ファイル ... 6.キャップグループ情報ファイル ... 7.キャップ情報ファイル ... 8.エラー情報ファイル ... 9.NGワードファイル ... A.グループ情報ファイル ... B.管理ユーザ情報ファイル ... C.NGユーザ情報ファイル ... D.エラーログ ... E.書き込みログ ... F.スレッド作成ログ ... G.過去ログインデクス ... ■ age、sageについて ... ■ キャップについて ... ■ トリップについて ... ■ fusianasanについて ... ■ NGワードについて ... ■ 規制ユーザについて ... ■ 管理機能 ... 1.ユーザ管理 ... 2.掲示板作成 ... 3.キャップ管理 ... 4.設定変更 ... ■ 謝辞 ... ■ はじめに -------------------------------------------------------------------------------------------------------------- この文書はTAB幅が4桁で最適化してあります。それ以外のTAB幅ですと表示が著しく乱れる可能性があります。 本スクリプトはスクリプトとしての著作権は放棄しませんが、再配布、改造、改変などは自由にしてもらって かまいません。また、indexやread.cgi使用時に出る著作権表示(0ch BBS ver.xxx)も気に入らなければ、消し たり、好きな表示に変えてもらっても構いません。 「2ちゃんねる型」というものに関しては、どうやらひろゆき氏が著作権だか何かを持っているらしいです。 なお、この文書は一部2ちゃんねるの初心者向きな説明も入っていますので、生粋の2ちゃんねらは軽く読み 飛ばしてください。 ■ 機能 -------------------------------------------------------------------------------------------------------------- ・スレッドフロート型(通称:2ちゃんねる型)掲示板 ・騙り防止機能(キャップ・トリップ・ふしあな・ID) ・キャップ権限付加(管理・記者・表示) ・トリップ桁数設定可能 ・ID表示種類(強制・任意・なし・強制リモホ) ・スレッド作成規制(連続作成規制・キャップのみ作成規制) ・投稿規制(連続投稿規制・2重書き込み規制・短時間投稿規制) ・ユーザ規制機能 ・NGワード設定 ・強制リモホ表示 ・読取専用・CGI禁止設定 ・過去ログ作成(過去ログindex、過去ログ) ・cookie保存 ・URL、引用自動リンク、URLリンククッション ・管理用CGIよりほとんどの設定をWeb上から設定可能 ・管理権限設定機能 ■ 動作環境 -------------------------------------------------------------------------------------------------------------- 1.必須環境 ・perl5以上がインストールされている鯖 ・ある程度のHTML、FTP、CGI、perlなどの知識 2.推奨環境 ・CGI負荷を大目に見てくれる鯖 ・cookieが使える鯖 ・詳しいperlなどの知識 ・2ちゃんねるに関する知識 ・煽り耐性 ・大量の炉利画ぞ(ry ■ 設置方法 -------------------------------------------------------------------------------------------------------------- 1.簡易設置方法 1./module/melkor.plを開く 2.InitSystemValueサブルーチン内の'SERVER'を設置鯖にする。 3.admin.cgi、bbs.cgi、read.cgi、subbbs.cgiの各perlパスを変える 4.鯖にアップロードする 5.admin.cgiの起動 2.詳細設定項目 自鯖 :/module/melkor.pl 'SERVER' CGI設置DIR :/module/melkor.pl 'CGIPATH' 管理データ設置DIR :/module/melkor.pl 'INFO' 初期データ設置DIR :/module/melkor.pl 'DATA' 掲示板設置DIR :/module/melkor.pl 'BBSPATH' 最大レス数 :/module/melkor.pl 'RESMAX' 最大エラーログ保持数:/module/melkor.pl 'ERRMAX' 最大subject保持数 :/module/melkor.pl 'SUBMAX' エラーメッセージ :/info/errmsg.cgi 3.設置例 3.1.xreaでの設置(アカウント名hoge) 1./module/melkor.plを開く 2.InitSystemValueサブルーチン内の'SERVER'の値を'http://hoge.sX.xrea.com'に変更 3.FTP接続をしてpublic_htmlディレクトリ内にtestディレクトリを作成 4.testディレクトリ内に*.cgi、module、info、datasディレクトリをアップ 5.*.cgiのパーミッションを0750に変更 6."http://hoge.sX.xrea.com/test/admin.cgi"を起動 3.2.iswebでの設置(アカウント名hoge) 1./module/melkor.plを開く 2.InitSystemValueサブルーチン内の'SERVER'の値を'http://hoge.isweb.ne.jp/cgi-bin'に変更 3.FTP接続をしてpublic_htmlディレクトリ内にtestディレクトリを作成 4.testディレクトリ内に*.cgi、module、info、datasディレクトリをアップ 5.*.cgiのパーミッションを0750に変更 6."http://hoge.isweb.ne.jp/cgi-bin/test/admin.cgi"を起動 ■ 標準ディレクトリ構成 -------------------------------------------------------------------------------------------------------------- [---][SERVER] ; 掲示板設置ルート + [PM-BDIR][BBS] ; 掲示板設置ディレクトリ | + [PM-BDIR]/dat ; datファイル保存ディレクトリ | + [PM-BDIR]/kako ; 過去ログ保存ディレクトリ | + [PM-LDIR]/log ; 各種管理ログ保存ディレクトリ | + [PM-ADIR]/pool ; dat一時保存ディレクトリ + [---][CGIPATH] ; cgi設置ディレクトリ + [---][DATA] ; 初期データ設置ディレクトリ + [---][INFO] ; 管理データ保存ディレクトリ + [---]/module ; モジュール設置ディレクトリ ※ [パーミッション][ディレクトリ名]です。   MELKORのシステム変数で表せる個所は、システム変数のキーで表しています。 ■ モジュール -------------------------------------------------------------------------------------------------------------- ぜろちゃんねるスクリプトを支えるモジュール群です。 モジュール名(ファイル名)は、指輪物語関連の登場人物からとっていますが、物語上の役割とモジュールの 働きに一切関連性はありません。 aragorn.pl : datデータ管理 bradybuck.pl : subjectデータ管理 celeborn.pl : 過去ログ管理 denethor.pl : バナー管理 elrond.pl : 汎用出力 faramir.pl : アクセスユーザ管理 galadriel.pl : 汎用変換 helm.pl : 管理ユーザ管理 isildur.pl : SETTINGデータ管理 khazad.pl : admin.cgi支援 legolas.pl : head,foot,meta.txt管理 melkor.pl : システム情報管理 nazgul.pl : 掲示板情報管理 orald.pl : エラー情報管理 peregrin.pl : 管理ログデータ管理 radagast.pl : cookie管理 samwise.pl : フォームデータ管理 thorin.pl : 出力管理 ungoliant.pl : キャップデータ管理 varda.pl : bbs.cgi支援 wormtongue.pl : NGワード管理 ■ 各種ファイル説明 -------------------------------------------------------------------------------------------------------------- 1.datファイル(*.dat) 掲示板ディレクトリの中のdatディレクトリ内に作成されます。全ての書き込みの内容を 保持するファイルです。スレッド1つに付き、1ファイル作成されます。 1行(1改行)につき1つの書き込みを表します。 1つの書き込みを表すフォーマットは以下のとおりです。 FROM<>mail<>date<>MESSAGE<>[subject]\n ※ subjectは1、またはあぼーんされた書き込みにのみ付加されます。 2.subject一覧ファイル(subject.txt) 掲示板ディレクトリの中に1つだけ作られます。現在有効なスレッドの一覧を保持します。 1行(1改行)につき1つのスレッドを表します。 1つのスレッドを表すフォーマットは以下のとおりです。 [key].dat<>subject(res)\n 3.掲示板設定ファイル(SETTING.TXT) 掲示板ディレクトリの中に1つだけ作られます。掲示板の設定情報を保持します。 1行(1改行)につき1つの設定を表します。 1つの設定を表すフォーマットは以下のとおりです。 KEY=VALUE\n 4.掲示板情報ファイル(bbss.cgi) CGI設置ディレクトリ[CGIPATH]の中の[INFO]ディレクトリ内に1つだけ作成されます。 管理用CGIの「掲示板作成」によって作られた掲示板の情報を保持します。 1行(1改行)につき1つの掲示板を表します。 1つの掲示板を表すフォーマットは以下のとおりです。 BBSDIR=BBSNAME\n 5.バナー情報ファイル(banner.cgi) CGI設置ディレクトリの中の[INFO]ディレクトリ内に1つだけ作成されます。 広告や告知に使うバナー情報を保持します。 1行(1改行)につき1つの情報を表します。データ区切りは<>です。 BGCOL_PC : バナーテーブルの背景色(PC用) BGCOL_MOBILE : バナーテーブルの背景色(携帯用) TITLE_PC : バナーのタイトル(PC用) TITLE_MOBILE : バナーのタイトル(携帯用) TEXT_PC : バナーの中身(PC用) TEXT_MOBILE : バナーの中身(携帯用) 6.キャップグループ情報ファイル(groupc.cgi) CGI設置ディレクトリ[CGIPATH]の中の[INFO]ディレクトリ内に1つだけ作成されます。 キャップのグループ情報を保持します。 1行(1改行)につき1つのグループ情報を表します。データ区切りは<>です。 1つのグループを表すフォーマットは以下のとおりです。 name<>range<>discript<>authorlist\n name : グループ名 range : 適応範囲(*で全範囲) discript : コメント authorlist : 権限リスト 7.キャップ情報ファイル(caps.cgi) CGI設置ディレクトリ[CGIPATH]の中の[INFO]ディレクトリ内に1つだけ作成されます。 キャップの情報を保持します。 1行(1改行)につき1つのキャップ情報を表します。データ区切りは<>です。 1つのキャップを表すフォーマットは以下のとおりです。 id<>name<>pass<>group<>whole\n id : キャップID(システムが付加) name : 表示テキスト pass : キャップパス(#は抜いたもの) group : 所属グループ whole : フルネーム 8.エラーメッセージファイル(errmsg.cgi) CGI設置ディレクトリ[CGIPATH]の中の[INFO]ディレクトリ内に1つだけ存在します。 掲示板用・管理用のエラーメッセージ情報を保持しています。 途中、CGIなどで書き換えられることはありません(読取専用です)。 1行(1改行)につき1つのエラーメッセージを表します。データ区切りは<>です。 1つのエラーメッセージを表すフォーマットは以下のとおりです。 ErrNo<>Subject<>ErrorMsg\n ErrNo : エラー番号 Subject : エラータイトル ErrorMsg : エラーメッセージ 9.NGワード情報ファイル(ngwords.cgi) CGI設置ディレクトリ[CGIPATH]の中の[INFO]ディレクトリ内に1つだけ作成されます。 NGワードの一覧を保持しています。 1行(1改行)につき1つのNGワードを表します。 1つのNGワードを表すフォーマットは以下のとおりです。 METHOD<>method\n SUBSTITUTE<>substitute\n NGWord\n NGWord\n ・・・ method : NGワード処理 substitute : NGワード代替文字 A.グループ情報ファイル(group.cgi) CGI設置ディレクトリ[CGIPATH]の中の[INFO]ディレクトリ内に1つだけ作成されます。 管理ユーザが所属するグループの情報を保持します。 1行(1改行)につき1つのグループを表します。 1グループを表すフォーマットは以下のとおりです。 name<>range<>discript<>authorlist\n name : グループ名 range : 適応範囲(*で全範囲) discript : コメント authorlist : 権限リスト B.管理ユーザ情報ファイル(users.cgi) CGI設置ディレクトリ[CGIPATH]の中の[INFO]ディレクトリ内に1つだけ作成されます。 管理用CGIにログオンする管理ユーザ情報を保持します。 1行(1改行)につき1管理ユーザを表します。 1管理ユーザを表すフォーマットは以下のとおりです。 user<>pass<>group<>whole\n user : ユーザ名 pass : パスワード group : 所属グループ whole : ユーザフルネーム C.NGユーザファイル(userng.cgi) CGI設置ディレクトリ[CGIPATH]の中の[INFO]ディレクトリ内に1つだけ作成されます。 アクセス規制ユーザの情報を保持します。 1行(1改行)につき1ユーザを表します。 1ユーザを表すフォーマットは以下のとおりです。 TYPE<>type METHOD<>method\n UserHost\n UserHost\n ・・・ type : ユーザタイプ method : NGワード処理 D.エラーログファイル(err.cgi) 掲示板ディレクトリの中のlogディレクトリ内に1つだけ作成されます。 read.cgi、bbs.cgi、subbbs.cgiで起きたエラーのログを保持します。 1行(1改行)につき1つのエラーを表します。 1エラーを表すフォーマットは以下のとおりです。 time<>data1<>data2<>host\n time : エラーが起きた時間 data1 : エラー番号 data2 : エラー時のスクリプトバージョン host : エラーを起こしたホスト E.書き込みログファイル(xxxxxxxxxxx.cgi) 掲示板ディレクトリの中のlogディレクトリ内に作成されます。 連投・2重書き込み等の規制のための書き込みログを保持しています。 保持しているログの数はSETTING.TXTによって設定されます。 1行(1改行)につき1つの書き込みログを表します。 1書き込みログを表すフォーマットは以下のとおりです。 time<>data1<>data2<>host\n time : 書き込んだ時間 data1 : 書き込み内容の文字数 data2 : 書き込み時のスクリプトバージョン host : 書き込みをしたホスト F.スレッド作成ログファイル(IP.cgi) 掲示板ディレクトリの中のlogディレクトリ内に1つだけ作成されます。 スレッド作成などの規制のためのスレッド作成ログを保持しています。 保持しているログの数はSETTING.TXTによって設定されます。 1行(1改行)につき1つのスレッド作成ログを表します。 1スレッド作成ログを表すフォーマットは以下のとおりです。 time<>data1<>data2<>host\n time : スレッド作成時間 data1 : 作成したスレッドキー data2 : 作成時のスクリプトバージョン host : スレッドを作成したホスト G.過去ログインデックスファイル(kako.idx) 掲示板ディレクトリの中のkakoディレクトリ内に1つだけ作成されます。 管理用CGIより過去ログ化したスレッドの情報を保持し、過去ログのindexを作成するのに 使用します。 1行(1改行)につき1つの過去ログを表します。 1過去ログを表すフォーマットは以下のとおりです。 key<>subject<>date\n key : ログのスレッドキー subject : スレッドタイトル date : 過去ログ作成日 ■ age、sageについて -------------------------------------------------------------------------------------------------------------- AGE(エイジ)ではありません。「あげ」と読むのが普通です。 メール欄に"sage"の文字を入れると、書き込んだスレッドは全スレッド中の現在位置を保持します。 sageを入れないで投稿した場合、そのスレッドは先頭に移動することになります。 スレッド位置を保持することを"sage"(さげ)といい、先頭に移動させることを"age"(あげ)といいます。 ※ "sage"と入れても、スレッド位置が下がるのではないということに注意して下さい。 ■ キャップについて -------------------------------------------------------------------------------------------------------------- メール欄に#passを打ち込むことで、キャップ機能が働きます。 キャップはキャップグループで権限設定されている必要があり、グループの権限に固定されます。 グループは自由に作成することができ、権限も以下のものを自由に選択することが可能です。 キャップ権限一覧 タイトル文字数規制解除 : スレッドタイトルの文字数制限を受けなくなります 名前文字数規制解除 : 名前欄の文字数制限を受けなくなります メール文字数規制解除 : メール欄の文字数制限を受けなくなります 本文文字数規制解除 : 本文の文字数制限を受けなくなります 本文行数規制解除 : 本文の改行数制限を受けなくなります 本文1行文字数規制解除 : 本文の1行細大文字数制限を受けなくなります 名無し規制解除 : 名前欄必須入力規制を受けなくなります スレッド作成規制解除 : 連続スレッド作成規制をうけなくなります 連続投稿規制解除 : 連続投稿規制を受けなくなります 二重書き込み規制解除 : 二重書き込み規制を受けなくなります 短時間投稿規制解除 : 短時間投稿規制を受けなくなります 読取専用規制解除 : BBS_READONLY=caps時の規制を受けなくなります ID表示規制解除 : ID表示をさせなくなります 強制ホスト表示規制解除 : 強制ホスト表示をさせなくなります 携帯からのスレッド作成 : 携帯からのスレッド作成ができるようになります ★表示 : 固定表示名+★を名前に付加します 詳しい権限設定については、readme(admin).txtをご覧ください。 ■ トリップについて -------------------------------------------------------------------------------------------------------------- 通称一人キャップ。名前欄に#passを打ち込むことでpass部分が暗号化され8桁の英数文字に 変換されます。この変換された文字から元のpassを割り出すことは事実上不可能なので個人特定 のために簡易的に利用できます。 表示の際には ◆xxxxxxxx と◆マークが表示されトリップであることが証明されます。 ※名前欄に◆を直書きすると◇に変換されるので偽トリップと区別できます。  また、xxxxxxxx部分はボールドされないのでそれでも区別できます。 ■ fusianasanについて -------------------------------------------------------------------------------------------------------------- 名前欄にこのキーワードを入力して書き込みをするとこの部分がリモートホストに代替されます。 個人の証明をしたいときに使用してください。 ※知らない人を引っ掛けるのに使用しないほうがいいです。。 ■ NGワードについて -------------------------------------------------------------------------------------------------------------- NGワードを設定すると、設定された文字が書き込まれたときに規制処理が行われます キャップ権限も関係なくNGワードが書かれたら処理が行われるので注意が必要です。 規制処理詳細については、readme(admin).txtをご覧ください。 ■ アクセスユーザについて -------------------------------------------------------------------------------------------------------------- 規制処理詳細については、readme(admin).txtをご覧ください。 ■ 掲示板設定項目(SETTING.TXT) -------------------------------------------------------------------------------------------------------------- 各掲示板ディレクトリに作成されるSETTING.TXTに掲示板固有の設定情報が入ります。 設定情報の意味は以下のとおりです。 ASETTYA_DAME : 最小レス投稿間隔(秒) BBS_ABONENAME : レスをあぼーんしたときに表示される代替文字 BBS_BACKGROUND : index(トップページ)の背景画像URL BBS_COOKIE : cookieの保存(on:保存 off:保存しない) BBS_COOKIE_PATH : cookieを取得するサーバのディレクトリパス BBS_FIGUREHEAD : index(トップページ)の看板画像 BBS_GETHOSTBYADDR : IPをホスト名に変換(on:変換 off:変換せず) BBS_HEADLINK : index(トップページ)の看板画像からのリンクURL BBS_PATH : 掲示板のディレクトリ名 BBS_READONLY : 掲示板読取専用(on:読取専用 caps:権利キャップのみ可能 none:通常) BBS_REFERER_CUSHION : リファラクッション名 BBS_SUBBBS_CGI : スレッド作成時に別画面で作成(on:別画面 off:index) BBS_SUBTITLE : ヘッド部分に表示される掲示板のサブタイトル BBS_THRAEDCAPONLY : スレッド作成を制限(on:キャップのみ可 off:制限無し) BBS_TITLE : 掲示板のタイトル BBS_TRIPCOLUMN : トリップの表示桁数 BG_COLOR_INFO : index(トップページ)のヘッダテーブルの背景色 BG_COLOR_INDEX : index(トップページ)の背景色 BG_COLOR_THREAD : スレッド(テーブル)の背景色 ID_DISP : ID表示方法(none:非表示 show:任意 force:強制 host:ホスト表示) LIMIT_LINE : 書き込み最大改行数(表示最大はこの半分の値) LIMIT_MAIL : メール欄の最大文字数(キャップパスは含まない) LIMIT_NAME : 名前欄の最大文字数(トリップ,ふしあな変換前) LIMIT_SUBJECT : スレッドタイトル最大文字数 LIMIT_MESSAGE : メッセージ欄の最大文字数(改行含む。URL・引用変換前) LIMIT_COLUMN : 1行の最大文字数(URL・引用変換前) NANASHI_CHECK : 名前欄の入力チェック(pass:チェック無し checked:チェック有り) NANASHI_NAME : 名前欄未入力時の代替テキスト ALINK_COLOR : リンククリック時の色 LINK_COLOR : リンクの色 VLINK_COLOR : 訪問済みリンクの色 RES_KAKISUGI : 連続投稿可能最大回数 RES_RENZOKU : 書き込みログの保存数 TEXT_COLOR_BASE : 文字のベースカラー TEXT_COLOR_NAME : 名前表示色 TEXT_COLOR_SUBJECT : タイトル表示色 THREAD_MENU : index(トップページ)のメニューのスレッド表示数 THREAD_NUMBER : index(トップページ)のプレビュースレッド表示数 THREAD_TATESUGI : スレッド作成ログの保存数 ■ 管理機能 -------------------------------------------------------------------------------------------------------------- 詳しくはreadme(admin).txtをご覧下さい。 ■ 謝辞 -------------------------------------------------------------------------------------------------------------- ぜろちゃんねるを設置・テストなどしてくれている皆様にこの場をお借りして、御礼申し上げます。 また、ぜろちゃんねる初期、および現在を盛り上げていただいた(ている)以下の皆様、その他コテハンの皆様、 ならびに数多くの名無しさんにも厚く御礼申し上げます。 配布スレ1の>>2 11です ◆pPSkPzu2 サ骨 ◆/IQ5000w (さこちゃねる管理人) JPEG ◆ZSSS.jpg (2NEXT管理人) Eu ◆TRENT.So (Euちゃんねる管理人) パクソ ◆brdaRvlM ◆oW2ACyAk いっちゃん( ´∀`) ◆IKokU65g (carmonar.net管理人) 擬古区 ◆X/GIKokU (↑と同一人物?) 委員長 ◆ABoneCRY (2ちゃんブラウザ A Bone 作者) 7M. ◆7M./4Uw. コラオドロイタ(゚д゚;) ◆/dEnAiNo (コラオドロ板管理人) hoge ◆TUIS.pc Aさん ◆/E1/G4IY (´-`) ◆u2Fdque. perlでスレ立てるの>>1 (Vimによる2ちゃんねるブラウザ作者) (順不同・敬称略) □ SPECIAL THANKS 2ちゃんねる 2ちゃんねる WebProgram板 2ちゃんねる プログラム技術板 -------------------------------------------------------------------------------------------------------------- end of document