このカテゴリでは、Movable Type 4 で変数を扱う場合に必要となる「MTLoop」などのLoop系のテンプレートタグの説明を行います。
『Loop系』カテゴリ内のエントリ一覧
MTSetHashVar
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
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>
出力結果
- 6 Mie
- 11 Akira
- 3 Kenji
- 7 Masaru
- 9 Katsutoshi
- 12 Yuka
- 2 Hanako
- 8 Taeko
- 1 Taro
- 4 Shinji
- 10 Momoe
- 5 Yuko
並べ替えに関するモデファイア
ハッシュ変数には、配列のようなインデックスによる順序性はありませんが、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"
- 格納値を数値として用いて逆順に並べ替える。
並べ替えに関するモデファイアの続きを読む
- タグ
-
- .htaccess
- Advantage
- Apache
- Archive
- Asset
- Author
- Authority
- AutoSave
- BackUp
- body
- Bug
- Calc
- Category
- Check
- CMS
- Comment
- Company Site
- Config
- Contact
- CORESERVER
- count
- Create
- Creative Commons
- CSS
- Custom Field
- Date
- Default
- delete
- Designer
- DNS
- Domain
- Entry
- Environment
- Eval
- Example
- Export
- Feature
- Feed
- FFFTP
- File
- Folder
- For
- GetVar
- head
- html
- If
- Image
- Import
- Include
- index
- info
- Install
- key
- keyword
- License
- Local
- Loop
- Management
- Manager
- Meta
- Modifier
- Module
- MTElse
- MTElseIf
- MTFor
- MTGetVar
- MTIf
- MTIgnore
- MTLoop
- MTSeHashVar
- MTSetVar
- MTSetVarBlock
- MTSetVars
- MTSetVarTemplate
- MTUnless
- MySQL
- Navigation
- Next
- op
- Page
- Perl
- php
- PhpMyAdmin
- Ping
- Plugin
- pop
- Previous
- Principle
- push
- ReBuild
- Role
- Sample
- SetUp
- SetVar
- shift
- Spam
- Tag
- Template
- TrackBack
- Trouble
- undef
- unshift
- UpGrade
- UpLoad
- Usability
- Variable
- Version
- WebPage
- Wizard
- Writer
- XAMPP
- XHTML
- XML
- 導入編
- ローカル環境
- サンプル
- トラブル集