mtde.info

Movable Type Developers Express

MTSetVarにおけるfunctionモデファイア(delete関数)

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

MTSetVarテンプレートタグにおけるfunctionモデファイアの中で、deleteという関数がありますが、これは「ハッシュ変数をクリアする」という機能を持ちます。キー、値ともにクリアされます。

例えば、MyHomeというハッシュがあり、数個のデータがあるとします。MTSetVarで同じ変数名を指定しつつ keyモデファイアでクリアしたいキー、functionモデファイアでdeleteという関数を指定すると、指定キーのキーと値をセットでクリアできます。

書式例

<MTSetVar name="MyHome" function="delete" key="Person2">

図解

実行前

  • キー:値
  • Person1:GrandFather
  • Person2:GrandMother
  • Person3:Father
  • Person4:Mother
  • Person5:Brother
  • Person6:Me

<MTSetVar name="MyHome" function="delete" key="Person2">を追加すると...

keyモデファイアで指定したPerson2のキーと値のセットがクリアされます。

なお、keyモデファイアを省略することはできません。省略すると再構築にてエラーが発生します。

  • Person1:GrandFather
  • Person3:Father
  • Person4:Mother
  • Person5:Brother
  • Person6:Me

一連のテストコード例

<MTSetvar name="MyHome" key="Person1" value="GrandFather">
<MTSetvar name="MyHome" key="Person2" value="GrandMother">
<MTSetvar name="MyHome" key="Person3" value="Father">
<MTSetvar name="MyHome" key="Person4" value="Mother">
<MTSetvar name="MyHome" key="Person5" value="Brother">
<MTSetvar name="MyHome" key="Person6" value="Me">

<mt:loop  name="MyHome" sort_by="key">
   <p><$mt:getvar name="__key__"$> <$mt:getvar name="__value__"$></p>
</mt:loop>
<!-- key="Person2"を削除 -->
<MTSetVar name="MyHome" function="delete" key="Person2">
<mt:loop  name="MyHome" sort_by="key">
   <p><$mt:getvar name="__key__"$> <$mt:getvar name="__value__"$></p>
</mt:loop>

短縮形

このコードは、<MTSetVar name="delete(MyHome)" key="Person2">と記述することもできます。

SetVar系

2008 mtde.info