mtapp.multiField(マルチフィールド)v2 から v3 へのアップグレード

最終更新日:2025.03.04 公開日:2023.11.17

mtapp.multiField(マルチフィールド)v2 から v3 へアップグレードする際に注意すべき点をまとめました。

Vue.js から Svelte へ

mtapp.multiField v1 および mtapp.multiField v2 は Vue ベースで作られていましたが、mtapp.multiField v3 は Svelte で作られています。

version オプションが未指定の場合の解釈の変更

mtapp.multiField v2 までの場合は version オプションが未指定の場合は version: 1 と解釈されていました。

mtapp.multiField v3 では、version オプションが未指定の場合は version: 3 と解釈されます。したがって、MTAppjQuery v2 系から利用しているマルチフィールドで version オプションが設定されていないものには version: 1 オプションを追加してください。

オリジナルフィールド

オリジナルフィールド(独自の Vue コンポーネント)を作成して運用している場合は mtapp.multiField v2version オプションの設定値が 2 )のままご利用ください。

id オプションの指定方法

mtapp.multiField() をコンテンツデータフィールドに適用する場合、id オプションには id: 123, のようにコンテンツフィールドのフィールドIDを指定していました。

MTAppjQuery v3 では「mtapp.getContentFieldIdByLabel()」というメソッドが追加され、このメソッドを使って id: mtapp.getContentFieldIdByLabel('フィールド名'), のように書くことで、環境ごとのフィールドIDの差異を気にする必要がなくなります(もちろん今まで通りのID番号の指定でも動きます)。

マルチカラム内の縦向き固定テーブルのデータ構造の変更

type: 'multi-column' の中に「縦向き固定テーブル」( type: 'table-vertical-fixed' )がある場合、保存されるデータにバグがありました。
詳細は「マルチカラム内の縦向き固定テーブルのデータ構造の変更」をご確認ください。

コンテンツデータフィールド

response データ(2024年2月19日追記)

mtapp.multiField v3 では response プロパティは削除されました。

mtapp.multiField v2 では、コンテンツデータフィールドで保存されるデータの中に response というプロパティがあります。
response にコンテンツデータフィールドで選択したものを管理画面で表示する際に使ったData APIのレスポンス内容が入っていました。

response に保存されるデータはコンテンツデータフィールドを含む mtapp.multiField v2 が利用されているページを保存した時点でのデータとなります。選択してあるコンテンツデータが更新されたとしても、この response 内のデータは更新されませんでした。

そのためmtapp.multiField v3 では response プロパティを削除しました。

保存されるデータから削除(2024年8月30日追記)

createButtonLabelselectButtonLabel オプションの値は保存されるデータには含まれなくなりました。

画像フィールド

hasTextField オプションの廃止(2024年8月28日追記)

mtapp.multiField v2 の画像フィールドでは、hasTextField: true を設定した場合に alt テキストを入力する欄が表示されましたが、mtapp.multiField v3 では alt テキストの入力欄のラベルを設定する textFieldLabel オプションの値の有無で alt テキスト入力欄の表示・非表示を切り替えるようになりました。したがって、保存される JSON からも hasTextField プロパティは削除されました。

保存されるデータから削除(2024年8月30日追記)

hasTextFieldtextFieldLabeluploadDirectoryオプションの値は保存されるデータには含まれなくなりました。

数値フィールド

保存されるデータ型の変更(2024年8月30日追記)

type: "number", のフィールドの JSON に保存される値が文字列から数値に変更されました。

フロントで型チェックしている場合はお気をつけください。

ドロップダウンリスト・チェックボックス・ラジオボタンフィールド

data プロパティの定義(2024年12月16日追記)

選択系フィールド(ドロップダウンリスト、チェックボックス、ラジオボタン)には data プロパティが必須となりました。

選択系フィールド」のドキュメントの data の項を参考にして追加してください。

汎用フィールド

データが保存されるプロパティ名が変更(2024年8月30日追記)

保存される値の中で、innerGroups オプションで指定した各グループの中のデータについて、保存されている値がフィールドハンドルをプロパティ名にした値として保存されていたのが、通常のフィールドと同様に data プロパティの値として保存されるようになりました。

言葉では分かりにくいので下図をご確認ください。