MOFHTML MANUAL for Ver.1.9

MOFHTMLの構成
タグ
  1. 書式
  2. リファレンス
マクロ



MOFHTMLの構成
一般的な構成は以下のようになっています。
[クラス階層グラフ]
<!-- <__GRAPH> -->
<MAINCLASSNAME>-<SUBCLASSNAME>
<!-- <</>> -->

[メインクラスブロック]
<!-- <__MAINCLASSNAME> -->
   Contents
<!-- <</>> -->

[サブクラスブロック]
<!-- <__SUBCLASSNAME> -->
   Contents
<!-- <</>> -->
また、これらのブロックは小分けして定義することもできます。
例えば、
[サブクラスブロック A]
<!-- <__SUBCLASS_A> -->
   Contents
<!-- <</>> -->

[サブクラスブロック B]
<!-- <__SUBCLASS_B> -->
   Contents
<!-- <</>> -->

[サブクラスブロック A]
<!-- <__SUBCLASS_A> -->
   Contents
<!-- <</>> -->
のように、間に別クラスのブロックを挟んでいても、同クラスのブロックは最終的に1ブロックに収束されます。



タグ

実例としてデフォルトのスタイルファイルも参考にして下さい。

書式
■ 基本ルール

<!-- <_ITEM> -->

ITEM にクラス名・クラス内のアイテム名・変数などを指定します。
クラス名およびアイテム名に使用できる文字は半角アルファベット大文字とアンダーラインのみ。
アイテムタグ中での改行は禁止です。
拡張タグパラメータ内及び条件式の中カッコの中でのみ改行や空白が使用できます。
また、拡張タグパラメータ中に他のアイテムタグを含むことはできません。
環境変数および変数は使用できます。

■ クラスブロック

<!-- <__CLASSNAME> -->
   Contents
<!-- <</>> -->

Contents にブロックの中身を書きます。

■ クラス階層グラフ

<!-- <__GRAPH> -->
<MAINCLASS>-<SUBCLASS_A>-<SUBCLASS_B>
<!-- <</>> -->

クラス名を "< >" で囲み、左から階層の高い順に間を"-"でつなげて書いていきます。

■ 拡張タグ
  • 一般

    <!-- <_ITEM>=\\Parameter\\ -->

    Parameter にはHTMLタグなどを指定します。
    Parameter にそのアイテム自身の値を指定するには、

     <!-- <_URL>=\\<a href="<URL>">HOME</a>\\ --> 

    というように、"<>" で囲ってアイテム名を書きます。

  • 条件式

    <!-- <_ITEM>=\\{Case 1} : {Case 2}\\ -->

    ITEM に値があるならCase 1。 なければCase 2が選択されます。
    中カッコとコロンの間の空白も含めてワンセットなので注意して下さい。
    このタグは単独で使用します。
    前後に文字や文字列が含まれている場合タグは無効となります。
    ただし中カッコ内では、閉じ中カッコ "}" や "\\" など、タグに含まれる文字以外であれば空白や改行を含む文字列でも指定できます。
    尚、中カッコの中には最低でも1文字指定されている必要があります。
    何も書き出したくない場合は空白でも入れておいて下さい。

  • マクロの指定

    <!-- <_ITEM>=\\MACRONAME(Option)\\ -->

    MACRONAMEで指定したマクロを使って表示させます。
    アイテム自身の値は自動的にマクロに渡され、Optionにはマクロのオプションを指定します。
    マクロの詳細についてはマクロのセクションを参照して下さい。
    条件式同様単独で使用します。
    前後に文字や文字列が含まれている場合タグは無効となります。


■ 他クラスタグの参照

<!-- <_ITEM>=\\<_CLASSNAME::ITEM>\\ -->

単独で使用します。
前後に文字や文字列が含まれている場合タグは無効となります。
CLASSNAME に参照するクラス名を指定し、その後に "::"(コロン2つ) 続けて参照したいタグのアイテム名を指定します。
尚、参照先のアイテムは既に定義されている必要がありますので、同一クラス内で参照する場合は注意して下さい。
おもに同じタグを繰り返し使う場合や、サブクラスから上位クラスのアイテムを参照するときに使用します。
ex)
    定義済みクラス<UPPER>の<TITLE>の値を参照する。

    UPPER クラスのアイテム定義タグ
    <!-- <_TITLE>=\\<p>めんたいこ</p>\\ -->

    参照元クラスのアイテム定義タグ
    <!-- <_TITLE>=\\<_UPPER::TITLE>\\ -->

    表示
     ▼

    UPPER クラス
    <p>めんたいこ</p>

    参照元クラス
    <p>めんたいこ</p>



リファレンス


… メインクラス専用


アイテム

ITEMNAME
おもにログの項目名を指定します。

■ 基本ログ項目
項目名内容
IDログID
NO返信記事番号
DATEログ記録日
TITLEタイトル
NAME名前
MSGメッセージ
PARENT親記事のログID
(レス投稿フォーム等で使用)


■ タイトル一覧用 項目
項目名内容
IDログID
TITLEタイトル
SIZE返信件数


■ イメージ一覧用 項目
項目名内容
AUTHORイメージの作者名
ID投稿者 ログID
IMAGENAMEイメージのタイトル
FILENAMEファイル名


■ 検索結果一覧用 項目
項目名内容
HITSヒット件数(単位:メッセージ)
KEYWORDS送られたキーワード文字列
SUBSTRキーワードが含まれていたメッセージ
IDヒットした記事のログID
TITLEヒットした記事のタイトル
NOヒットした記事の返信記事番号



また、下位クラスブロックの内容は上位クラスのアイテムになります。
具体的な利用方法はデフォルトのスタイルファイルで確認して下さい。
ex)
    上位クラス UPPER に 下位クラス LOWER を埋め込む。

    UPPER クラスブロック
    <!-- <__UPPER> -->
    <dl>
    <!-- <LOWER> -->
    </dl>
    <!-- <</>> -->

    LOWER クラスブロック
    <!-- <__LOWER> -->
    <dt>LOWER ブロック
    <dd>これは LOWER クラスのブロックです
    <!-- <</>> -->

    表示
     ▼

    <dl>
    <dt>LOWER ブロック
    <dd>これは LOWER クラスのブロックです
    </dl>




クラス定義

__CLASSNAME
クラスブロックの開始。
定義したいクラスの名前を指定します。


__GRAPH
グラフ階層ブロックの開始。


</>
クラスブロックの終了。


環境変数

SCRIPT_XXX
スクリプトのパスが入ります。
XXX にはスクリプトの種類を指定します。

■ スクリプト 種類一覧
SCRIPT_VIEW閲覧スクリプト
SCRIPT_POST投稿スクリプト
SCRIPT_MANAGER管理スクリプト
SCRIPT_SEARCH検索スクリプト
SCRIPT_DRAWお絵描き投稿スクリプト
拡張機能が有効な場合のみ


COMMAND_XXX
命令コマンドが入ります。
XXX にはコマンド名を指定します。
パラメータのあるコマンドはパラメータを指定します。
その際コマンドとパラメータの区切りには "=""." が使えます。
尚、コマンドはスクリプトに渡すパラメータの先頭に指定してください。

■ 標準コマンド 一覧
コマンド名内容パラメータ
PAGEページ送りページ番号
SORTソートアイテム名 [0 : 1]
LISTタイトル一覧モードなし
IMGLISTイメージ一覧モードなし
DRAWお絵描き投稿モードなし
DRAWREPLYお絵描き返信モードなし
POST投稿フォームを表示なし
POSTログIDレス投稿フォームを表示ログID
拡張機能が有効な場合のみ
モバイルモードのみ



PAGE_XXX
読み込み開始番号(単位:件)が入ります。
XXX には次のいずれかを指定します。

■ ページタイプ 一覧
PAGE_CURRENT現在のページ
PAGE_PREV前のページ
PAGE_NEXT次のページ



特殊アイテム

PAGE_SEQUENCE
ページ環境変数の仲間で、一連のページ番号のリンク文字列が入ります。
インデックス・各種一覧モード・検索結果など、索引を表示するページのみで使用でき、シングルモードでは無効となります。


SORT_BY_XXX
ソートコマンド文字列が入ります。
XXXにソートの対象とするアイテム名を指定し、 パラメータには昇降順を 01 で指定します。
尚、一覧モードではほかに "SORT_BY_DATE"(タイトル登録日)が。
さらにそのうちのインデックスとタイトル一覧モードでは "SORT_BY_RESDATE"(返信記事登録日) が指定できます。
その他の各リストページの項目名はアイテムの一覧表を参照して下さい。


HREF_XXX
これらはハイパーリンクなどに使えるよう環境変数をアイテム化したもので、メインクラス内で使用できます。
HREF_SELF 以外は通常のアイテム同様拡張タグパラメータを指定できます。

■ アイテム一覧
HREF_SELF "スクリプト名現在表示しているモードのコマンド"
という形の文字列が入ります。これは他のアイテムの基準値にもなります。
拡張パラメータ不可。
HREF_PREV前のページを表示するコマンド
HREF_PREVONE前の1件を表示するコマンド
HREF_NEXT次のページを表示するコマンド
HREF_NEXTONE次の1件を表示するコマンド



META_CHARSET
設定した文字コードセットに応じた META タグの文字列が入ります。
モバイルモードでは M_META_CHARSET を使用して下さい。



変数

&VARIABLE
MOFHTMLパッケージクラス内でグローバルなスカラ変数を埋め込みます。
スカラ変数名は全て小文字で定義し、VARIABLE にはその変数名を大文字で指定して下さい。
また、Copyright 表示用変数 &COPYRIGHT は必ずどこかに記述して下さい。

■ 公式変数一覧
&COPYRIGHTCopyright 表示用文字列
&VERSION(・ω・) BBS のバージョン



マクロ
呼び出したアイテムの値に対して色々な効果を与えます。
オプションの「表示フォーマット」は、任意の文字列中にマクロ固有の部品を埋め込んだもので構成されます。


  • DATE(表示フォーマットの文字列)

    ログ項目のDATEをフォーマットします。

    ■ 部品一覧
    <YEAR>西暦年
    <MONTH>月(1〜12)
    <DAY>日(0〜[28|29|30|31])
    <HOUR>時(0〜23)
    <MIN>分(0〜59)
    <SEC>秒(0〜59)

    日付フォーマットでは数字の表示形式を指定できます。
    <PARTSNAME[桁埋め数字][最小桁数]>
    という感じで指定します。[桁埋め数字] を省略すると半角スペースで桁を埋めます。

    ex)
        2003年3月23日 午後3時00分1秒なら
    
        <YEAR>/<MONTH2>/<DAY2>/ <HOUR02>:<MIN02>:<SEC02>
    
        表示
         ▼
    
        2003/ 3/23 15:00:01
    



  • MAIL(表示フォーマットの文字列)

    メールアドレスをアカウントとドメインに分解してフォーマットします。

    ■ 部品一覧
    <ACOUNT>アカウント名
    <DOMAIN>ドメイン名


    ex)
        "@"(アットマーク)を全角文字にして簡単スパム対策。
    
        タグ
        <!-- <MAIL>=\\MAIL(email - <ACOUNT><DOMAIN>)\\ -->
    
        表示
         ▼
    
        email - username@domainname.co.jp
    



  • WRAP(折り返し文字数)

    アイテムが複数行の場合、オプションで指定した文字数で <BR> します。


  • TRIM(制限文字数)

    アイテムが制限文字数を超える場合、トリミングして表示します。


  • ICON(IMGタグのオプション)

    IMGタグに指定したオプションを付加してイメージタグを表示します。
    アイテムの値はSRC属性に入ります。
    また、お絵描きモードで投稿されたイメージなどサムネールのある画像はサムネールの方を優先して表示し、指定した画像ファイルが無い場合はデフォルトアイコンを表示します。


  • TABLE(1行のセル数)

    指定のセル数で区切ったテーブルを形成します。
    単に <TR> タグで仕切るだけなので <TABLE> タグ及びセルは自前で書く必要があります。
    <TABLE> タグ内にこのマクロを含むMOFHTMLタグを記述し、 アイテムは <TD> 等セルを形成するタグで囲んでおきます。
    (さもないと無意味な結果をもたらします。)

    ex) サブクラス LIST の内容をテーブルで表示。 サブクラス LIST のブロック <!-- <__LIST> --> <td nowrap><!-- <TITLE> --></td> <!-- <</>> --> メインクラス MAIN でのタグ定義 <table border=1 cellspacing=0 cellpadding=5> <!-- <LIST>=\\TABLE(3)\\ --> </table> 表示 ▼ <table border=1 cellspacing=0 cellpadding=5> <tr> <td nowrap>いろはにほへとちりぬるを</td> <td nowrap>わかよたれそつねならむ</td> <td nowrap>ういのおくやまけふこえて</td> </tr> <tr> <td nowrap>あさきゆめみし</td> <td nowrap>えひもせす</td> </tr> </table>



使用許諾
改変・再配布は自由に行って頂いて構いませんが、著作権は放棄しません。
オリジナルの Copyright 表示及び改変版は改変したことを明記した上で使用・配布して下さい。
本スクリプトは無償で無保証です。
使用に関わるすべてにおいて使用者の責任のもとで行われるものとし、作者はその責任の一切を負いません。



(・ω・) BBS Ver.1.9.
Copyright(C)0xLUV@FBt : 9.