MTAppjQuery v2.3.0 リリース - 深い入れ子の JSON データを効率よく扱う mt:Foreach、mt:NestVar タグを追加

深い入れ子の JSON データを効率よく扱う mt:Foreach、mt:NestVar タグを追加した MTAppjQuery v2.3.0 をリリースしました。

この記事は弊社 bit part 合同会社が提供している Movable Type プラグイン「MTAppjQuery」の利用を前提としております。MTAppjQuery って何?という方は弊社の「MTAppjQuery」の製品ページをご覧ください。

本日、MTAppjQuery v2.3.0 をリリースしました。

今回のリリースでは、下記の機能の向上を図りました(使用例は後述)。

mt:Foreach タグを追加

配列を効率よくループする mt:Foreach タグを追加しました(使用例は後述)。

mt:NestVar タグを追加

入れ子になっている配列・連想配列から効率よくデータを取り出せる mt:NestVar タグを追加しました。

記事・ウェブページのメニューのサイトごとの表示・非表示の設定に対応

記事とウェブページのメニューをサイトごとに表示・非表示を設定できるようになりました。

システムのプラグイン設定で 表示する になっている場合は、各サイトのプラグイン設定を優先します。 つまり、サイトごとに「記事」「ウェブページ」のメニューの表示・非表示を制御したい場合は、システム設定で 表示する にしておき、各サイトのプラグイン設定で 表示する表示しない を選択してください。 また、システム設定で 表示しない になっている場合はすべてのサイトで非表示となります。

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>

ダウンロード

すでにライセンスをお持ちの方は、サポートサイトの「製品ダウンロード」のページからダウンロードできます。

引き続きよろしくお願いいたします!

Published 2018-11-16
Updated 2019-10-21

「MTAppjQuery」カテゴリの記事一覧