mtapp.multiField(マルチフィールド)v2 から v3 へのアップグレード
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 v2 ( version オプションの設定値が 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日追記)
createButtonLabel、selectButtonLabel オプションの値は保存されるデータには含まれなくなりました。
画像フィールド
hasTextField オプションの廃止(2024年8月28日追記)
mtapp.multiField v2 の画像フィールドでは、hasTextField: true を設定した場合に alt テキストを入力する欄が表示されましたが、mtapp.multiField v3 では alt テキストの入力欄のラベルを設定する textFieldLabel オプションの値の有無で alt テキスト入力欄の表示・非表示を切り替えるようになりました。したがって、保存される JSON からも hasTextField プロパティは削除されました。
保存されるデータから削除(2024年8月30日追記)
hasTextField、textFieldLabel、uploadDirectoryオプションの値は保存されるデータには含まれなくなりました。
数値フィールド
保存されるデータ型の変更(2024年8月30日追記)
type: "number", のフィールドの JSON に保存される値が文字列から数値に変更されました。
フロントで型チェックしている場合はお気をつけください。
ドロップダウンリスト・チェックボックス・ラジオボタンフィールド
data プロパティの定義(2024年12月16日追記)
選択系フィールド(ドロップダウンリスト、チェックボックス、ラジオボタン)には data プロパティが必須となりました。
「選択系フィールド」のドキュメントの data の項を参考にして追加してください。
汎用フィールド
データが保存されるプロパティ名が変更(2024年8月30日追記)
保存される値の中で、innerGroups オプションで指定した各グループの中のデータについて、保存されている値がフィールドハンドルをプロパティ名にした値として保存されていたのが、通常のフィールドと同様に data プロパティの値として保存されるようになりました。
言葉では分かりにくいので下図をご確認ください。