ミケネコ研究所 / CommuniCa5.0 / 設定
CommuniCa 5.0
設定の変更

慣れてきたら、初期設定からいろいろ変更してみましょう。

1. ファイルロック


CGIにある程度なれた方で、ぜひやって欲しい設定が「ファイルロック」設定です。 アクセスカウンタだと、よく「カウンタが飛んだ」などの表現でカウンタが0になる現象があるように、CGIでも「ログが飛ぶ」現象が発生します。これは UNIX システムの機構上避けられないのですが、ファイルロックを行いますと、ほぼログは守られます。

ファイルロックの手順です。

#-------------------------------------------------------------------●
# [任意 ^-^] ファイルロック用の作業ディレクトリ
#	パーミッション777が与えられた適当なディレクトリを指定して下さい。
#	末尾のスラッシュは不要です。
$CONFIG{'lock_dir'} = './tmp';

ここで作った tmp ディレクトリは、複数のチャットで共有することができます。


2. HTML タグの設定


CommuniCa では、初期状態ではやや過剰気味にタグを許可していますので、荒らされそうな環境下で用いる場合は、タグを制限できます。やり方はとても簡単で、ゲートウェイ中のタグ設定を見てください。


#-------------------------------------------------------------------#
#       =====================================================       #
#                           HTML タグの許可                         #
#       =====================================================       #
#-----------------------------------------------------[CommuniCa 5]-#

# メッセージ中にどんなタグを許可しますか?
# 設定のための文法は、マニュアルを参考にして下さい。

@{$CONFIG{"allow_tag"}} = split (/\n/, <<"--- --- --- TAG END --- --- ---");

####	 さあ、ここから許可タグを設定してください。

#	---------	リンク
<A> </A>

#	---------	フォントの見栄え
<FONT> </FONT>       # フォント
<TT> </TT>           # タイプライタ風 等幅フォント
<I> </I>             # イタリック体
<B> </B>             # ボールド体
<STRIKE> </STRIKE>   # 取り消し線
<S> </S>             # 取り消し線
<U> </U>             # アンダーライン付き フォント
<MARQUEE> </MARQUEE> # スクロール文字

#	---------	フォントの大きさ
<BIG> </BIG>         # フォントサイズを1つ上げる
<SMALL> </SMALL>     # フォントサイズを1つ下げる

#	---------	行と段落
<BR>                 # 強制的な改行
<P> </P> ?           # 段落 ( ? が付いているのは、終了タグが省略できる意味)
<NOBR> </NOBR>       # 改行禁止
<WBR>                # 改行禁止中の改行許可

#	---------	整形済み文章
<PRE> </PRE>

#	---------	グループ化
<DIV> </DIV>         # ブロックレベル
<CENTER> </CENTER>   # 中央

#	---------	上付き文字と下付き文字
<SUP> </SUP>         # 上付き文字
<SUB> </SUB>         # 下付き文字

#	---------	リスト
<UL> </UL>
<OL> </OL>
<LI> </LI> ?
<DL> </DL>
<DT> </DT> ?
<DD> </DD> ?

#	---------	テーブル
<TABLE> </TABLE>
<CAPTION> </CAPTION>
<THEAD> </THEAD> ?
<TFOOT> </TFOOT> ?
<TBODY> </TBODY> ?
<COLGROUP> </COLGROUP> ?
<COL>
<TR> </TR> ?
<TH> </TH> ?
<TD> </TD> ?

#	---------	画像
<IMG>

#	---------	語句の意味づけ
<EM> </EM>           # 強調
<STRONG> </STRONG>   # さらに強調
<DFN> </DFN>         # 定義
<CODE> </CODE>       # コーディング
<SAMP> </SAMP>       # サンプル
<KBD> </KBD>         # キーボードからの入力
<VAR> </VAR>         # 変数
<CITE> </CITE>       # 引用
<ABBR> </ABBR>       # 略語
<ACRONYM> </ACRONYM> # 頭字語

#	---------	引用
<BLOCKQUOTE> </BLOCKQUOTE> # ブロックレベル
<Q> </Q>                   # インライン

#	---------	変更点の表示
<INS> </INS>         # 新しい部分 
<DEL> </DEL>         # 古い部分

#	---------	「H1」〜「H6」要素
<H1> </H1>
<H2> </H2>
<H3> </H3>
<H4> </H4>
<H5> </H5>
<H6> </H6>

#	---------	ルビ
<RUBY> </RUBY>       # RUBY 全体
<RB> </RB>           # ルビをふる対象
<RT> </RT>           # ルビ文字列
<RP> </RP>           # 括弧を指定

####	 これでタグの設定は終わりです。

--- --- --- TAG END --- --- ---

このタグリストに載っているタグが使えます。もし制限したい場合は、気に入らないタグ行を消去するだけです。あとで付け足せるように、行を消去するよりも、行頭に半角 # を足してコメント化する方がよいでしょう。

文法を解説します。


3. フォームスイッチ


フォームとして使う変数を設定します。また、フォーム変数のデフォルトの値もここで設定します。たとえば初期状態の件数を「300 件表示」にしたりすることができます。

#-------------------------------------------------------------------#
#       =====================================================       #
#                            フォームスイッチ                       #
#       =====================================================       #
#-----------------------------------------------------[CommuniCa 5]-#

#	フォーム変数として許可する変数名を書きます。
#	ここに記載されていないフォーム変数は、受け付けません。
#
#	line  を削ると、画面から消えてしまったログの回覧が不可能になります。
#	write を削ると、書きこみが不可能になります。(プレビューは可能です。)
#	line  を残して全部削ると、閲覧専用モードになります。(ログ閲覧のみ)

%DEFAULT = (
	"name"      => '',       # 名前 : (デフォルト例:'匿名希望')
	"color"     => '000000', # 名前の色
	"seq"       => '0',      # ログの表示順序[0:逆順(上が最新)、1:昇順]
	"seek"      => '0',      # ログの検索順序[0:末尾から読む、1:先頭から読む]
	"line"      => '20',     # ログ表示行数 : (デフォルト例: '20' )
	"return"    => 'off',    # 改行反映[on:改行反映、off:HTMLどおり]
	"cookie"    => 'off',    # クッキー[on:有効、off:無効](デフォルト無効にする)	"msg"       => '',       # 書き込みメッセージ
	"write"     => '',       # 書き込みボタン
);

$CONFIG{"form_allow"} = [ keys %DEFAULT ];

また、ここで設定されなかったフォーム変数については、CommuniCa は無視してしまいます。もしフォーム変数を追加するような改造を加えた時は、フォームスイッチの項目も追加しておきましょう。


4. クッキー設定


通常、設定を変更する必要がありません。


#-------------------------------------------------------------------#
#       =====================================================       #
#                            クッキー設定                           #
#       =====================================================       #
#-----------------------------------------------------[CommuniCa 5]-#
#
# ・Cookie スイッチ
# 0: 全く Cookie を扱わない。
# 1: ラベルの一致した Cookie だけを受信し、送信する。
# 2: 可能な限り Cookie を反映する。送信は普通に。
$CONFIG{"cookie_accept"} = 2;
#	・Cookie を反映するフォーム
$CONFIG{"cookie_allow"} = ["name", "color", "line", "url", "email", "cookie"];
# ・Cookie の環境設定
# [NAME] Cookie の識別子です。NAME をそろえると Cookie を共有できます。
# [Expires] Cookie の賞味期限(秒単位)
# [Path] Cookie を有効にするパス名。値が数値の場合は、パス階層数を示します。
# [Domain] Cookie を有効にするドメイン。指定する必要はありません。

$CONFIG{"cookie_name"} = '';
$CONFIG{"cookie_expires"} = 90*24*60*60; # 90 日
$CONFIG{"cookie_path"} = '1'; # 1 の場合 http://domain/~user/ まで
$CONFIG{"cookie_domain"} = '';

クッキーの理解には、詳しい知識が必要です。通常は、特に変更の必要はありません。

cookie_accept(Cookie スイッチ)の挙動は柔軟ですが複雑です。通常は 2 で構いません。複数の CommuniCa を設置した場合に、2 の設定はとても便利に働きます。掲示板Aと掲示板Bがあり、掲示板Aでクッキーを受け取ったとします。ここで初めて掲示板Bへ行った時、cookie_accept が 2 に設定されていれば、できる限り掲示板Aのクッキーを受信し、掲示板Bの初期設定に反映させます。ですので、掲示板Bではまだクッキーを有効にしていないのにも関わらず、すでに名前の欄には名前が埋め込まれていることでしょう。しかし、これはクッキーを共有しているということではありません。掲示板Bでクッキーを食べた瞬間、掲示板Aのクッキーとは全く独立し、お互いのクッキーが干渉しあうことはありません。

cookie_allow(Cookie を反映するフォーム)は、ここに設定されたフォーム変数について、クッキー内に保存します。

cookie_name(Cookie の識別子)に何か文字列を指定すると、クッキーを共有することができます。掲示板Aと掲示板Bで共有されたクッキーは、片方で変更があると、もう片方にも影響を及ぼします。

cookie_expires(Cookie の賞味期限)は、クッキーが廃棄されるまでの秒数を指定してください。一度クッキーを受け取ると、アクセスがあるたびにクッキーは毎回更新され、毎回賞味期限が更新されます。賞味期限90日というのは、最後にアクセスがあってから、90日後にクッキーが廃棄されます。

cookie_path(Cookie を有効にするパス名)は、数字で指定します。0 の場合、クッキーは http://domain/ 全体のアクセス時に送信されます。初期状態では 1 で http://domain/~user/ 以下のアクセス時に送信されます。数字は、URL 内のドメイン以降のスラッシュ数になります。

cookie_domain(Cookie を有効にするドメイン)は、空白の場合、CGI が設定されているサーバとなります。何らかの理由でクッキーを CGI が設定されているサーバにクッキーを有効にしたい場合、ここに http からはじまるドメイン名を書いてください。しかしほとんどのブラウザは、このドメインを超えるクッキー送信を拒否します。


CommuniCa ホームページ http://mikeneko.creator.club.ne.jp/~lab/cgi/communica/
お問い合わせ <lab@mikeneko.ne.jp>