mtde.info

Movable Type Developers Express

このカテゴリでは、Movable Type 4 で変数を扱う場合に必要となる「MTLoop」などのLoop系のテンプレートタグの説明を行います。

『Loop系』カテゴリ内のエントリ一覧

MTSetHashVar

2008年2月 2日 20:52 | Writer: apstar | 記事本文

MTSetHashVarテンプレートタグは、ハッシュ変数にキーと値の組をまとめて複数設定するためのブロックタグです。MTSetVarでnameモデファイアにキー、valueモデファイアに値を列挙し、それをMTSetHashVarブロックタグで括ると、ハッシュ変数として扱うことができます。

MTSetVarで普通にハッシュ変数を記述した例

nameモデファイアでハッシュ変数名、keyモデファイアでキー値、valueモデファイアでキーに対する値を記述しています。

<MTSetVar name="MyFriends" key="1" value="Taro">
<MTSetVar name="MyFriends" key="2" value="Hanako">
<MTSetVar name="MyFriends" key="3" value="Kenji">
<MTSetVar name="MyFriends" key="4" value="Shinji">
<MTSetVar name="MyFriends" key="5" value="Yuko">
<MTSetVar name="MyFriends" key="6" value="Mie">
<MTSetVar name="MyFriends" key="7" value="Masaru">
<MTSetVar name="MyFriends" key="8" value="Taeko">
<MTSetVar name="MyFriends" key="9" value="Katsutoshi">
<MTSetVar name="MyFriends" key="10" value="Momoe">
<MTSetVar name="MyFriends" key="11" value="Akira">
<MTSetVar name="MyFriends" key="12" value="Yuka">

MTSetHashVarを用いて簡素にハッシュ変数を記述した例

nameモデファイアでキー値、valueモデファイアでキーに対する値を記述しています。そのセットをMTSetHashVarブロックタグで括り、nameモデファイアでハッシュ変数名を与えています。

<MTSetHashVar name="MyFriends">
<MTSetVar name="1" value="Taro">
<MTSetVar name="2" value="Hanako">
<MTSetVar name="3" value="Kenji">
<MTSetVar name="4" value="Shinji">
<MTSetVar name="5" value="Yuko">
<MTSetVar name="6" value="Mie">
<MTSetVar name="7" value="Masaru">
<MTSetVar name="8" value="Taeko">
<MTSetVar name="9" value="Katsutoshi">
<MTSetVar name="10" value="Momoe">
<MTSetVar name="11" value="Akira">
<MTSetVar name="12" value="Yuka">
</MTSetHashVar>

MTLoop

2008年2月 2日 21:48 | Writer: apstar | 記事本文

MTLoopテンプレートタグは、カウンタ変数を必要としないループを生成します。MTLoop直後にnameモデファイアを使用してハッシュ配列名を指定します。

内部では、__key__という特殊な変数でキー値を、__value__という特殊な変数でキーに対応する値を取得できます。

サンプルコード

<MTSetHashVar name="MyFriends">
<MTSetVar name="1" value="Taro">
<MTSetVar name="2" value="Hanako">
<MTSetVar name="3" value="Kenji">
<MTSetVar name="4" value="Shinji">
<MTSetVar name="5" value="Yuko">
<MTSetVar name="6" value="Mie">
<MTSetVar name="7" value="Masaru">
<MTSetVar name="8" value="Taeko">
<MTSetVar name="9" value="Katsutoshi">
<MTSetVar name="10" value="Momoe">
<MTSetVar name="11" value="Akira">
<MTSetVar name="12" value="Yuka">
</MTSetHashVar>

<MTLoop name="MyFriends">
   <p><MTGetVar name="__key__"> <MTGetVar name="__value__"></p>
</MTLoop>

出力結果

並べ替えに関するモデファイア

2008年2月 2日 21:53 | Writer: apstar | 記事本文

ハッシュ変数には、配列のようなインデックスによる順序性はありませんが、sort_by モディファイアを指定することで、並べ替えて出力することが可能です。

指定できるsort_byモデファイアのオプションは次のとおりです。

sort_by="key"
キーの値を用いて順に並べ替える。
sort_by="key reverse"
キーの値を用いて逆順に並べ替える。
sort_by="value"
格納値を用いて順に並べ替える。
sort_by="value reverse"
格納値を用いて逆順に並べ替える。
sort_by="value numeric"
格納値を数値として用いて順に並べ替える。
sort_by="value numeric reverse"
格納値を数値として用いて逆順に並べ替える。

並べ替えに関するモデファイアの続きを読む

エントリ
タグ
はじめに
導入編
ローカル環境
変数
サンプル
その他
トラブル集
2008 mtde.info