深い入れ子の JSON データを効率よく扱う mt:Foreach、mt:NestVar タグを追加した MTAppjQuery v2.3.0 をリリースしました。
本日、MTAppjQuery v2.3.0 をリリースしました。
今回のリリースでは、下記の機能の向上を図りました(使用例は後述)。
配列を効率よくループする mt:Foreach
タグを追加しました(使用例は後述)。
入れ子になっている配列・連想配列から効率よくデータを取り出せる mt:NestVar
タグを追加しました。
記事とウェブページのメニューをサイトごとに表示・非表示を設定できるようになりました。
システムのプラグイン設定で 表示する
になっている場合は、各サイトのプラグイン設定を優先します。
つまり、サイトごとに「記事」「ウェブページ」のメニューの表示・非表示を制御したい場合は、システム設定で 表示する
にしておき、各サイトのプラグイン設定で 表示する
か 表示しない
を選択してください。
また、システム設定で 表示しない
になっている場合はすべてのサイトで非表示となります。
例えば、下記のようなことができます。
<mt:SetVarBlock name="json">{
"data": [
{ "id": 1,
"name": "テスト01",
"data": [
{"col01": "データ1-A"},
{"col02": "データ1-B"},
{"col03": "データ1-C"}
]
},
{ "id": 2,
"name": "テスト02",
"data": [
{"col01": "データ2-A"},
{"col02": "データ2-B"},
{"col03": "データ2-C"}
]
},
{ "id": 3,
"name": "テスト03",
"data": [
{"col01": "データ3-A"},
{"col02": "データ3-B"},
{"col03": "データ3-C"}
]
}
]
}</mt:SetVarBlock>
<mt:Var name="json" json_decode="1" setvar="items" />
<mt:Foreach name="items.data" as="item">
<mt:If name="__first__">
<ul>
</mt:If>
<li><mt:Var name="item" key="id" />: <mt:NestVar name="item.data.0.col01" /></li>
<mt:If name="__last__">
</ul>
</mt:If>
</mt:Foreach>
また、下記のようにすることもできます。
<mt:SetVarBlock name="json">{
"data": [
{ "id": 1,
"name": "テスト01",
"data": [
{"value": "データ1-A"},
{"value": "データ1-B"},
{"value": "データ1-C"}
]
},
{ "id": 2,
"name": "テスト02",
"data": [
{"value": "データ2-A"},
{"value": "データ2-B"},
{"value": "データ2-C"}
]
},
{ "id": 3,
"name": "テスト03",
"data": [
{"value": "データ3-A"},
{"value": "データ3-B"},
{"value": "データ3-C"}
]
}
]
}</mt:SetVarBlock>
<mt:Var name="json" json_decode="1" setvar="items" />
<mt:Foreach name="items.data" as="item">
<mt:If name="__first__">
<ul>
</mt:If>
<li>
<mt:Var name="item" key="id" />: <mt:Var name="item" key="name" />
<mt:Foreach name="item.data" as="data">
<mt:If name="__first__">
<ul>
</mt:If>
<li><mt:NestVar name="data.value" /></li>
<mt:If name="__last__">
</ul>
</mt:If>
</mt:Foreach>
</li>
<mt:If name="__last__">
</ul>
</mt:If>
</mt:Foreach>
すでにライセンスをお持ちの方は、サポートサイトの「製品ダウンロード」のページからダウンロードできます。
引き続きよろしくお願いいたします!