mtde.info

Movable Type Developers Express

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

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

MTGetVar

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

変数から、値を出力する(取り出す)テンプレートタグです。ファンクションタグです。変数は、代入するだけでは、画面上へその変更点は反映されません。代入された変数は、MTGetVarなどのテンプレートタグで取り出さないと、意味を成しません。

基本的な書式

書式は以下のとおりです。

<MTGetVar name="tmpData">

nameモデファイアには値を取り出したい変数名を記述します。nameモデファイアは必須です。

MTSetVarで指定していたvalueモデファイアは必要ありません。

上記サンプルコードは、MTGetVarを記述した場所へ、指定した変数名の値を出力します。

MTGetVarにおけるfunctionモデファイア(pop関数)

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

MTGetVarテンプレートタグにおけるfunctionモデファイアの中で、popという関数がありますが、これは「配列変数の一番上(または一番最後)から値を返し、その要素のデータを削除する」という機能を持ちます。

例えば、testVar[ ]という配列があり、要素が0から10までとします。MTGetVarで変数名を指定しつつfunctionモデファイアでpopという関数を指定すると、配列の一番最後のデータを取得しつつ削除できます。

書式例

<MTGetVar name="testVar" function="pop">

図解

実行前

<MTGetVar name="testVar" function="pop">を追加すると...

一連のテストコード例

<h3>実行例</h3>
<!-- 元データを準備 -->
<MTFor var="x" from="0" to="10">
<MTSetVar name="testVar[$x]" value="$x">
</MTFor>

<!-- 元データを出力 -->
<MTFor var="x" from="0" to="15">
<MTGetVar name="x">:<MTGetVar name="testVar[$x]"><br />
</MTFor>
<br />

<!-- 配列最後の要素データを取得・削除 -->
最後の要素:<MTGetVar name="testVar" function="pop">
<br />

<!-- もう一度元データを出力 -->
<MTFor var="x" from="0" to="15">
<MTGetVar name="x">:<MTGetVar name="testVar[$x]"><br />
</MTFor>

短縮形

このコードは、<MTGetVar name="pop(testVar)">と記述することもできます。

MTGetVarにおけるfunctionモデファイア(shift関数)

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

MTGetVarテンプレートタグにおけるfunctionモデファイアの中で、shiftという関数がありますが、これは「配列変数の一番下(または一番最初)から値を返し、その要素のデータを削除する」という機能を持ちます。

例えば、testVar[ ]という配列があり、要素が0から10までとします。MTGetVarで変数名を指定しつつfunctionモデファイアでshiftという関数を指定すると、配列の一番最初のデータを取得しつつ削除できます。

shiftでのデータ取得・削除においては、popとは異なり、shiftで削除したデータ以後は今までのデータと配列要素は1つづつずれるというのが注意するべき点です。

書式例

<MTGetVar name="testVar" function="shift">

図解

実行前

<MTGetVar name="testVar" function="shift">を追加すると...

一連のテストコード例

<h3>実行例</h3>
<!-- 元データを準備 -->
<MTFor var="x" from="0" to="10">
<MTSetVar name="testVar[$x]" value="$x">
</MTFor>

<!-- 元データを出力 -->
<MTFor var="x" from="0" to="15">
<MTGetVar name="x">:<MTGetVar name="testVar[$x]"><br />
</MTFor>
<br />

<!-- 配列最後の要素データを取得・削除 -->
最後の要素:<MTGetVar name="testVar" function="shift">
<br />

<!-- もう一度元データを出力 -->
<MTFor var="x" from="0" to="15">
<MTGetVar name="x">:<MTGetVar name="testVar[$x]"><br />
</MTFor>

短縮形

このコードは、<MTGetVar name="shift(testVar)">と記述することもできます。

MTGetVarにおけるfunctionモデファイア(count関数)

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

MTGetVarテンプレートタグにおけるfunctionモデファイアの中で、countという関数がありますが、これは「配列変数の要素数を数える」という機能を持ちます。

例えば、testVar[ ]という配列があり、要素が0から10までとします。MTGetVarで変数名を指定しつつfunctionモデファイアでcountという関数を指定すると、配列の要素数を取得できます。

書式例

<MTGetVar name="testVar" function="count">

図解

実行前

<MTGetVar name="testVar" function="count">を記述すると...

11という結果が返ってきます。元データには変更は加えられません。

一連のテストコード例

<!-- 元データを準備 -->
<MTFor var="x" from="0" to="10">
<MTSetVar name="testVar[$x]" value="$x">
</MTFor>

<!-- 元データを出力 -->
<MTFor var="x" from="0" to="15">
<MTGetVar name="x">:<MTGetVar name="testVar[$x]"><br />
</MTFor>
<br />

<!-- 配列の要素数を取得 -->
配列の要素数:<MTGetVar name="testVar" function="count">
<br />

<!-- もう一度元データを出力 -->
<MTFor var="x" from="0" to="15">
<MTGetVar name="x">:<MTGetVar name="testVar[$x]"><br />
</MTFor>

短縮形

このコードは、<MTGetVar name="count(testVar)">と記述することもできます。

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