=begin
# -*- coding: UTF-8 -*-
#------------------------------------------------------------------------------#
= Marldia - Web Chat System
#
# $Id: Marldia.txt 69 2009-09-28 18:16:29Z naruse $
# http://www.airemix.com/
# naruse@airemix.com
# Scripted by NARUSE Yui.
# "This file is written in shift_jis, CRLF." 空
#------------------------------------------------------------------------------#
== これは何？
“Marldia”は「いちいち入室するのが面倒な人が多いため寂れがちな所向けチャットシステム」です。
「たとえみなに伝言板と言われても、あくまでこれはチャットだ、
と言い張る管理人のいるサイト向け、侘び寂び対策済みチャットシステム」
とも言うかもしれません。
とりあえずそんな類のものです。

== 設置して動かないときのメモ。

=== 真っ白に燃え尽きた
index.cgi内のはじめの方に $ENV{'HTTP_ACCEPT_ENCODING'} = ''; と書いてください
=== それ以外
Mireilleの説明書を見てください（死
=== それでもわからない
Airemixの掲示板で質問してみてください


#------------------------------------------------------------------------------#
== Marldia History
:2009-09-29 Revision: 1.69
  * <ip>と内容に書くと、IPアドレスを表示するように
  * XML出力時に個人のIDをMD5とするように
:2008-08-17 Revision: 1.67
  * revision 表示に変更等
:2008-08-17 Revision: 1.66
  * iPhone, 922SH 対応
:2008-08-17 Revision: 1.65
  * 色々変更
:2008-01-27 Revision: 1.45
  * いろいろ変更
:2007-09-23 Revision: 1.44
  * ハニーポット機能を実装
:2007-07-04 Revision: 1.43
  * コマンド /help を追加
  * コマンド /save を追加
  * Safari 対応
  * REMOTE_HOST をランキングと参加者一覧で表示するように
:2007-03-23 Revision: 1.42
  * Cast出力のsystem/uriからバージョンを削除
  * UTF-8として正しくない文字列の入力を許さない
:2007-01-16 Revision: 1.41
  * 携帯モードで時刻がおかしいのを再度修正
  * 携帯モードでの一部フォントサイズの変更
  * 携帯モードで色指定がない場合はFONTタグを出力しないように
:2006-10-06 Revision: 1.40
  * option: color, bgcolor
  * iconcacheを用いた携帯向けアイコン縮小・フォーマット変換に対応
  * 携帯モードで時刻がおかしいのを修正
:2006-10-06 Revision: 1.39
  * option: showIcon
  * PCモードで、携帯からの発言には携帯マークを表示
  * 携帯モードで時刻がおかしいのを修正
  * 携帯モードで削除された記事を表示でする際、削除マークを表示
  * 行数と更新秒数のフォームを、INPUTかSELECT選べるように
  * 発言本文の内容について、タグの対応を見るように
:2006-07-06 Revision: 1.38
  * デフォルトで ChatHistory 稼動
  * ランキング周りの修正
  * &userArgumentFilter
  * アイコンカタログで page=0 を許す
:2006-07-02 Revision: 1.37
  * アイコン履歴
  * Cast 0.4 beta 対応
  * XML アイコンリスト
:2006-03-17 Revision: 1.36
  * 非ASCIIを含んだURL自動リンクが開いたときに化けるのを修正
:2006-03-11 Revision: 1.35
  * au/Vodafoneの携帯に対応
  * 文字コードをUTF-8に変更
:2005-11-04 Revision: 1.34
  * fix: quotes are not closed
  * fix: form of mobile entrance should be moethod="get"
:2005-10-05 Revision: 1.33
  * ケータイモードでのaccesskeyを設定
  * Encode 2.10 で FB_HTMLCREF の扱いが変わった件に対応
:2005-07-28 Revision: 1.32
  * 表情アイコンの一覧をcreatePopupでなくdivで行うようにした
  * クッキーをIrDrでエクスポート・インポートする機能をつけた
  * コマンドウィンドウをつけた
:2005-07-14 Revision: 1.31
  * 一般表情アイコンが使えなかったのを修正
  * URL自動リンクで、中継CGIでなく、JavaScriptで飛ばすようにした
  * ChatXMLのarticle/icon@srcが常に絶対パスとなるようにした
  * ChatXMLでarticle/icon{@width,@height}を追加した
:2005-06-07 Revision: 1.30
  * SELECTによるアイコン指定時に、表情アイコンが使用できないバグの修正
  * SELECTによるアイコン指定時に、表情アイコンSELECTが反映されないバグの修正
  * XML出力の調整
  * 連続投稿防止機能
:2005-05-29 Revision: 1.29
  * encoding指定投稿に対応
:2005-03-12 Revision: 1.28
  * XML出力対応
  * URL自動リンクでのリンクの際、Locationで飛ばすように
:2005-03-12 Revision: 1.27
  * 日本語ドメインのURL自動リンクに対応
:2005-03-12 Revision: 1.26
  * 管理コマンドの変更
  * 自動消去がIE5でも動くように？
  * 発言履歴のバグ修正
:2004-12-05 Revision: 1.25
  * デッドロックする可能性があったのを修正
  * オプションCSS
  * Reload周りの修正
  * 発言での空白の扱い方を変更
  * 色選択用のSELECTでFirefoxでも色が反映されるように
:2004-12-05 Revision: 1.24
  * 参加者情報が消えた状態で入室状態のリロードをするとBLANKがおかしくなるバグを修正
  * 複数行BODY
  * 発言履歴
:2004-12-05 Revision: 1.23
  * コマンド文法の変更
  * 編集コマンドの追加
:2004-11-24 Revision: 1.22
  * 経験地の少ない人を削除できるように
:2004-11-23 Revision: 1.21
  * 携帯電話からの閲覧をサポート
:2004-08-26 Revision: 1.20
  * ランキングに順位をつけた
  * 管理コマンドによる発言一括削除の実装
  * 管理コマンドによる経験値マージ機能の修正
  * 下フレームの自動リロードによって、上フレームの未確定な文字列が消えるIEのバグに対応
:2004-08-10 Revision: 1.19
  * 管理コマンドからのログ・ランキング削除機能を修正
:2004-07-30 Revision: 1.18
  * 退室モードの時に発言削除が出来ないのを修正
:2004-07-30 Revision: 1.17
  * 強制転送機能の実装
:2003-09-04 Revision: 1.16
  * 絶対指定アイコンがうまく動かなかったのを修正
  * 退室モードを追加
  * ZyoからSurfaceに
:2003-05-15 Revision: 1.15
  * 内部構造のオブジェクト指向化を進めた
  * 表情アイコン周りを書き直した
  * 絶対指定アイコン・相対指定アイコンコマンドを追加
  * その他
:2003-03-30 Revision: 1.14
  * Marldia.txtをRD化した
  * 管理モードのランキングや参加者一覧にIDの項目を追加
  * ランキングにしょうそく/LatContact項目を追加
  * getOnlyHashのハッシュにidを含めるようにした
  * CSSのlink周りやIE6対策周りを調整
  * レベル計算をまともにしてみた
  * その他調整
:2002-12-17 Revision: 1.13
  * 発言ランキングの強化
  * 参加者一覧の強化
  * ログ保存周りのバグを修正
  * 自動リンクの精度を高めた
:2002-12-13 Revision: 1.12
  * ファイル周りの実装で本格的にオブジェクト指向を使ってみた
  * 少しcssを変更
  * その他
:2002-10-22 Revision: 1.11
  * iconCatalogを使ってアイコン一覧を表示するようにした
  * ランキングの実装方法を変えてみた
  * $CF{'icondir'} →$CF{'iconDir'} とキー名変更
  * $CF{'iconlist'}→$CF{'iconList'}とキー名変更
  * ログやランキングのファイル操作をオブジェクト指向風味に再設計
  * 初期状態のチャットログとランキングを保存するファイルの拡張子をplからcgiに変更
  * タグSelectable機構をつけた
  * その他
:2002-08-29 Revision: 1.10
  * ずっと発言しないとリロード間隔が伸びていく機能をつけた
  * WindowsXPの場合、Windowsの新UI非対応のIE系ブラウザでも新UIになるようにしてみた
:2002-07-21 Revision: 1.9
  * CSSをIE6でチャットウィンドウに横スクロールバーが出ないように調整
  * そのほか
:2002-06-13 Revision: 1.8
  * アイコンをセレクトボックスで選ぶ時に両方が名前色になってしまうバグを修正
  * Tripod.co.jpでも一応動くようにした。
:2002-05-05 Revision: 1.7
  * Cookieに保存されているアイコンしか表情を使えなかったバグを修正
  * その他表情アイコン周りを修正
:2002-04-21 Revision: 1.6
  * コマンドで経験地統合とかいろいろできるようにしてみたh
  * 表情アイコンを一覧で選べるようにしてみた
  * CSSの漢字コードをEUC-JPに
:2002-03-21 Revision: 1.5
  * アイコン周り修正
  * 表情・専用アイコン周り修正
  * CSSも調整
  * $CF{'icon'}→$CF{'icondir'}
:2002-03-15 Revision: 1.4
  * アイコンリストを複数読み込めるようにした
  * 表情アイコン機能をつけた
  * 記事を個別で削除できるようにした
  * そのほか大量に変更
:2001-12-30 Revision: 1.3
  * 参加者情報の保存方法を変更しました
:2001-12-21 Revision: 1.2
  * 全体的にこまごまとした修正をしました
  * でも量が多いので何をしたのか忘れたり、、
:2001-10-21 Revision: 1.1
  * Initial Version.
:2001-05-04 Project'Marldia'
  * プロジェクトスタート。

#------------------------------------------------------------------------------#
== 簡単な設置方法。
	ファイル名  パーミッション 備考
	/                      705 チャットのディレクトリ
	/-index.cgi            705 起動ファイル
	/-core.cgi             644 コアファイル
	/-icon.txt             644 アイコンリスト
	/-style.css            644 スタイルシート
以下はMarldiaが勝手に設置します
	/-log.cgi              666 ログファイル
	/-rank.cgi             666 ランキングファイル
こんな感じで設置すれば動いてくれると思います。多分。

#------------------------------------------------------------------------------#
== アイコンリストの形式
	<optgroup label="グループ名">
	  <option value="ファイル名">アイコン名</option>
	  <option value="ファイル名">アイコン名</option>
	</optgroup>
	<optgroup label="グループ名">
	  <option value="ファイル名">アイコン名</option>
	  <option value="ファイル名">アイコン名</option>
	</optgroup>
	 . . .
	<optgroup label="グループ名">
	  <option value="ファイル名">アイコン名</option>
	  <option value="ファイル名">アイコン名</option>
	</optgroup>
	<option value="ファイル名">アイコン名</option>
	<option value="ファイル名">アイコン名</option>
と羅列する。
optgroup要素はIE6で対応しています。
IE5では何もおきませんが、見易さ・分類のしやすさをを考慮すると、
今のうちからつけておいたほうがいいと思います。
ちなみに、他の属性を追加して書いた場合一応それなりに対策はしてありますが、
妖しい動作をする可能性は十分に考えられるため、
なるべく上記の形式に沿うように書いてください。
改行は必須です。ないと正常動作しません。
optgroupで囲っていないoptionは最後尾にのみ置けます。
途中で入れるとやっぱり妖しい動作をします。
これ以上寛容には作れませんでした。すみませんm(__)m

#------------------------------------------------------------------------------#
== 専用アイコンについての補足。
(({$CF{'cmic'}='1';}))として((|$IC{''}|))を書き連ねれば発動します。
	$IC{'hae'}='mae.png'; #苗
	$IC{'hie'}='mie.png'; #贄
	$IC{'hue'}='mue.png'; #鵺
	$IC{'hee'}='mee.png'; #姐
	$IC{'hoe'}='moe.png'; #乃絵
こんなかんじで#以降に誰の専用アイコンか書いておくとわかりやすいと思います。
この場合、((%icon=hoe%))とOption欄に入力して投稿すると、
アイコンが乃絵○さんの専用アイコンである、moe.pngがアイコンになります。
ちなみにこの場合も実際は(({<img src="$CF{'icon'}moe.png">}))となります。
注意：アイコンパスワードには[0-9A-Z_a-f]な文字のみが使えます

#------------------------------------------------------------------------------#
== Option
Option欄にさまざまなコマンドを入力することができます。

=== icon
専用アイコンを指定します。

=== absoluteIcon
絶対指定アイコンを指定します。

=== relativeIcon
相対指定アイコンを指定します。

=== showIcon
携帯電話でもアイコンを表示します。

=== color
携帯モードでの文字色を指定します。

=== bgcolor
携帯モードでの背景色を指定します。

=== css
拡張外部CSSファイルを指定します。

=== su
管理モードに入ります。

#------------------------------------------------------------------------------#
== 表情アイコンの指定
=== アイコンのファイル名
ファイル名を foo.png, foo0.png ,foo1.png・・・と、
数字無し、拡張子の前に0、拡張子の前に1・・・と連番にする。

=== アイコンリスト側の指定方法
<OPTION value="foo.png#1">foo</OPTION>
などとする。
ただし、「1」の部分は、表情アイコンの連番の数字の中で、一番大きなものにする。

例えば、bar.gif, bar0.gif, bar1.gif, ・・・, bar10.gifと12個のアイコンがある場合、
"bar.gif#10"とします。

#------------------------------------------------------------------------------#
== 管理モード
まず管理パスワードを設定します。
index.cgi の adminpass にパスワードを設定しましょう。

  #管理モードへ移行する際のパスワード
  $CF{'admipass'}='hogehoge';

次にチャット画面で、Option 欄に「su=hogehoge」と入力します。
これで、管理モードに入ることができます。

管理モードでできることは以下の通りです。

* 発言直後、全員の削除が可能
* 発言直後、削除済みの発言が見れる
* 管理コマンドが利用できる

#------------------------------------------------------------------------------#
== 管理コマンド

管理モードに入っていると、管理コマンドが利用できます。

=== rank (del|delByExp|merge) <...>
ランキングを表示

* del <id>
  引数として指定されたIDの情報を削除
* delByExp <exp>
  引数として指定された経験値より少ない人を削除
* merge <mainid> [<subid>]..
  第一引数のIDに、それ以降のIDを統合する

=== member
参加者情報を表示

=== del <id> [<exp>]
発言削除

#------------------------------------------------------------------------------#
== そのほかの説明は
Mireilleの説明を見れば書いてあるかもしれません^^;;
アイコン形式や自動リンクなどの仕組みはMireilleとほぼ100%互換です。

#------------------------------------------------------------------------------#
== Copyright
Copyright (c) 2001-2009 NARUSE,Yui (((<Airemix|URL:http://www.airemix.com/>))). All rights reserved.

=end
