============================================================================== gwbbs_config.cgi - 管理者設定システム ============================================================================== 最終更新日:2003-01-14 14:05 ■概要 これで掲示板の基本的な設定を Web ベースで行います. ■環境設定 環境設定は CGI の差し替えを用意にするために,全て config.pl でまかなっ ています. これは require 命令で取り込まれますが,取り込み時のエラーチェックなど はしていません. ■共通コードに関して 共通して使用されるコードは,全て gwbbs.pl に統合しています. このため,先頭付近で gwbbs.pl をインプリメントしないと必要な機能が使用 できません. これは require 命令で取り込まれますが,取り込み時のエラーチェックなど はしていません. ■各機能へのジャンプ 先頭部分で get_formdata サブルーチンでフォームデータを読み込み, $FORM{'mode'} により機能分岐を行っています. 掲示板のシステム初期化も,先頭部分でほぼ行われています. $FORM{'mode'} で何も指定されなかったり,機能分岐から外れた場合は initer サブルーチンに飛んで設定項目 HTML を構築した後に終了します. ■設定ファイル 設定スクリプトで設定された項目は,デフォルトファイル名 gwbbs.ini に保 存されます. 保存の際は,以下のようなしように則っています. 01. 1レコードの終了コードは \n になる. 02. 1レコード内で改行する場合は \r を使用. 03. コメント行は # で開始. 04. ブランク行は許されない. 05. 特殊文字は HTML 特殊文字表記に則って変換される.それ以外にも,「=」 は &eq; に,「:」は : という独自仕様文字に変換される. 06. フォームタイプがチェックボックスで,NAME 属性が同じものの場合は, 半角カンマで情報を連ねる. 07. レコードフォーマットは NAME:VALUE という型式にする. 05.は,半角コロンが設定項目と設定内容をわけるためのキーになっているの で,これは独自特殊文字としてフォーマットし直さなければなりません.半角 イコールは念のためフォーマットし直しています. ■許可タグ 書き込みの際に,管理者が許可したタグのみを使えるように設定できます. これは,正規表現のマッチングで少しトリッキーなことをしていますので設定 項目追加がややこしいです. まず,initer サブルーチンの「許可するタグ」という HTML 表記の部分があ ります. そこでチェックボックスによるタグ許可を行うようになっています. ここは 1タグ 1行で書くようにします. 例を 2つ上げます. 書式-1:タグの中になにか属性を含むものがある場合 FONT
書式-2:タグの中に属性を含まないものの場合 B
タグには 2種類あって, のように何かしら属性を含むタグと,
のように何も属性がないものがあります. 属性を含む場合はその後に何か文字が続いているので,書式-1 のように .*? で最短マッチングを行ってください. 属性を含まない場合は,ただ単に書式-2 のようにさらっと書いて貰えればか まいません. 閉じタグがある場合は,半角パイプ記号 (|) で開きタグと閉じタグを記述し ます. 閉じタグがない場合は開きタグのみを記述します. タグは < > がシステム側で自動補完されるので,< > を省いたものを記述し なければなりません. 先頭に付いている [XXX] は,タグ認識用文字列で,これは「使用可能なタグ」 インフォメーションの文字列でも使用されますので,タグ名称を 1byte の大 文字で記述してください. 次に,HTML のチェックボックス初期化コードを記述します. これを記述しないと,設定を読み込んだ後,タグが使用できるように設定され ていても,チェックボックスを表示したときにチェックが外れてしまいます. initer サブルーチンの「# 使用可能なタグリスト」に if ($ini_oktag =~ /\[XXX\]/) { $oktag_xxx = 'checked'; } の書式で許可タグのチェック指示用コードを書きます. XXX は管理者設定 HTML 内に記述したタグ認識用文字列の 1byte 大文字,xxx は同小文字になります. これで許可タグの項目追加及びチェックボックスの初期化コード追加作業は完 了です. この作業には正規表現の知識が必要ですので,この際勉強がてらにがんばって ください. なお,スタイルシートの記述は自動的に削除されます.