配列/ハッシュ関連のテンプレートタグを追加するプラグイン

配列やハッシュについて、いくつかのテンプレートタグを追加するプラグインを公開します。

1.インストール

プラグインは以下からダウンロードします。

ArrayHashUtil_1_00.zip

ダウンロードしたZipファイルを解凍すると、「plugins」のフォルダができます。
このフォルダを、Movable Typeのインストール先ディレクトリにアップロードします。

2.配列関係のテンプレートタグ

配列関係として、以下のテンプレートタグが追加されます。

2-1.MTArrayShift

配列の先頭の要素を削除します。
nameモディファイアで、配列の名前を指定します。

2-2.MTArrayPop

配列の最後の要素を削除します。
nameモディファイアで、配列の名前を指定します。

2-3.MTArraySort

配列の最後の要素を昇順に並べ替えます。
nameモディファイアで、配列の名前を指定します。

また、標準では個々の要素を文字列として並べ替えます。
数値として並べ替えたい場合は、「numeric="1"」のモディファイアも付加します。

2-4.MTArrayReverse

配列の要素を逆順に並べ替えます。
nameモディファイアで、配列の名前を指定します。

2-5.MTArrayDelete

配列から要素を1つ削除します。
nameモディファイアで、配列の名前を指定します。
また、indexモディファイアで、削除する要素の番号を指定します。

2-6.MTArrayDupDelete

配列に値が重複する要素が複数ある場合、その中の1つを残して残りを削除します。
nameモディファイアで、配列の名前を指定します。

例えば、ある配列の要素が以下のようになっているとします。

番号
0東京
1大阪
2東京
3名古屋

この場合、「東京」が2出ていて重複していますので、1つを残して残りを削除します。
結果として、この配列は以下のようになります。

番号
0東京
1大阪
2名古屋

2-7.MTArrayConcat

2つの配列AとBがあるとして、Aの後にBを連結します。
A/Bの2つの配列の名前を、それぞれname/concatのモディファイアで指定します。

2-8.MTArrayGrep

配列の中から、特定の条件を満たす要素を抜き出します。
nameモディファイアで、対象の配列を指定します。
また、testモディファイアで、条件の式を書きます。

式の中では、配列の個々の要素を「$_」で表します。
また、条件式はPerlの書き方を使います。

例えば、配列nunbersから、値が10以上の要素だけを抜き出したい場合は、以下のように書きます。

<$mt:ArrayGrep name="number" test="$_ >= 10"$>

2-9.MTArrayMap

配列の各要素に対して、一律に計算等を行って、値を更新します。
nameモディファイアで、対象の配列を指定します。
また、operationモディファイアで、実行する処理(式)を書きます。。

式の中では、配列の個々の要素を「$_」で表します。
また、式はPerlの書き方を使います。

例えば、配列nunbersで、各要素の値を2倍にしたい場合は、以下のように書きます。

<$mt:ArrayMap name="number" operation="$_ * 2"$>

2-10.MTArrayUnion

2つの配列AとBがあるときに、AとBのどちらかにある要素を取り出し、同じ値が2回出てこないようにして、Aに代入しなおします。
配列A/Bを、それぞれname/unionのモディファイアで指定します。

例えば、以下の2つの配列cities1/cities2があるとします。

cities1
番号
0東京
1大阪
2名古屋
cities2
番号
0東京
1神戸
2横浜

この状況で、以下のMTArrayUnionタグを実行するとします。

<$mt:ArrayUnion name="cities1" union="cities2"$>

すると、配列cities1は以下のようになります。
「東京」はそれぞれの配列にあるので、1回だけ取り出されます。

番号
0東京
1大阪
2名古屋
3神戸
4横浜

2-11.MTArrayIntersection

2つの配列AとBがあるときに、AとBの両方にある要素を取り出し、同じ値が2回出てこないようにして、Aに代入しなおします。
配列A/Bを、それぞれname/intersectionのモディファイアで指定します。

2-12.MTArrayDiff

2つの配列AとBがあるときに、Aだけにある要素(=AにあってBにない要素)を取り出し、同じ値が2回出てこないようにして、Aに代入しなおします。
配列A/Bを、それぞれname/diffのモディファイアで指定します。

3.ハッシュ関連のテンプレートタグ

ハッシュ関係として、以下のテンプレートタグが追加されます。

3-1.MTHashKeys

ハッシュのキーのみ取り出し、配列に代入します。
ハッシュの名前は、nameモディファイアで指定します。
また、代入先の配列の名前は、toモディファイアで指定します。

3-2.MTHashValues

ハッシュの値のみ取り出し、配列に代入します。
ハッシュの名前は、nameモディファイアで指定します。
また、代入先の配列の名前は、toモディファイアで指定します。