a-blog cmsのインポート機能についてのまとめです。二回目は「コンフィグの編集設定のインポート」についてです。
- a-blog cmsの、強力なインポート機能を使いこなそう(1)
- a-blog cmsの、強力なインポート機能を使いこなそう(2)
複雑だけど重要な「編集設定」
「コンフィグ」内の「編集設定」のページには多くの設定項目があります。
ここはエントリーのユニット機能に密接しているので、そのサイト独自の装飾に対応させたり、CSSフレームワークをacms.css以外にしたい場合は、必ず修正することになります。
インポート機能を使って、使い回しや省力化を図りたいところですが、前回の記事で紹介したページ単位のインポートだと、「編集設定」全体が書き換わってしまいます。
ユニット追加・ユニットグループ・テキストタグ…など、「編集設定」内のセクションごとにYAMLを分割できれば、カスタマイズもしやすいし、案件ごとの融通が利きます。
編集設定のYAMLファイル
いきなり例を挙げてしまうと、編集設定の「ユニットグループ」セクションだけを書き換えるYAMLの書き方は、以下の通りです。
--- @nesting_unit_group: - unit_group_class - unit_group_label unit_group_class: - - acms-column-clear - acms-col-sm-6 - acms-col-sm-8 - acms-col-sm-4 - acms-col-sm-9 - acms-col-sm-3 unit_group_label: - --- - 1カラム - 1/2カラム - 2/3カラム - 1/3カラム - 3/4カラム - 1/4カラム
セットになっている入力項目の構成を宣言している「@nesting_unit_group」と、その構成要素である「unit_group_class」「unit_group_label」というキーがあり、それぞれに値が定義されます。
「unit_group_class」と「unit_group_label」、それぞれの1番目、2番目、3番目…が対になっています。
キーを調べる方法
「@nesting_unit_group」などの必要なキーをどうやって調べるのかというと、「編集設定」のフォームのHTMLソースから読み取ることができます。
先述の「ユニットグループ」セクションのフォームタグを解析してみると、入力欄の「クラス」列のname属性には「unit_group_class」、「ラベル」列のname属性には「unit_group_label」が入っていることがわかります。
また、下の方を見ていくとname属性に「@nesting_unit_group」が入ったhidden要素があります。
a-blog cmsをかなり使っている人なら、「カスタムフィールドグループと同じ構造」だと気付くと思います。実は、a-blog cmsのカスタムフィールドと、管理ページの入力項目は同じ書き方なのです。
一旦、コンフィグ全体、もしくは編集設定のページのみをエクスポートしてから、name属性の値でYAMLファイル内を検索して抜き出していく方法をとると、より確実です。
応用
別の例を挙げてみます。こちらは「ユニット追加」セクションのYAMLです。
「ユニットのタイプ」と「ラベル」で構成されたグループとなっています。
--- @column_add_type_group: - column_add_type - column_add_type_label column_add_type: - text - custom_btn - image - file - map - video - module - media column_add_type_label: - テキスト - ボタン - 画像 - ファイル - 地図 - YouTube - モジュール - メディア
こちらは「エントリーコード」セクションのYAMLです(こんな単純なデータをインポートすることはないと思いますが…)。
このセクションは、グループ化されているフィールドがないため、YAMLも単純な構造になっています。
--- entry_code_prefix: entry- entry_code_extension: html entry_code_title: off
編集設定の差分インポート
このように、変更したい項目のYAMLだけを記述することで、編集設定の差分インポートファイルを作成できます。
「ユニットグループ」の設定をbootstrap準拠に変更したYAMLファイルを作成し、コンフィグのインポートから読み込ませてみます。
下のスクリーンショットの通り、YAMLファイルに書かれた「ユニットグループ」セクションだけが変更され、YAMLファイルにはない他の項目は変更されません。
「コンフィグ」以外はどうすれば…?
さて、コンフィグについては自由に操作できるようになりましたが、「モジュールID」はどうでしょうか。
モジュールIDは、コンフィグに含まれていません。一応、ID個別のエクスポート・インポートが用意されていますが、範囲が小さすぎ、ブラウザからGUIで入力するの比べて、あまり便利になった気がしません。
次回は、モジュールID・カテゴリーなど、コンフィグ以外の設定を部分的にインポートする方法を紹介します。