ケーススタディ:PowerCMS X でリレーション型のチェックボックスをカテゴリーの様な階層型に変更する
はじめに
表題の件について、やるのが初めてで、手順や作業による影響が無かったので調べてみた。その結果を以降に記載する。
前提
PowerCMS X の仕様として、記事やページなどの「オブジェクト」がどんなデータを保持し、どんな入力項目(=カラム)を持つかは、オブジェクトと一意に紐づく「モデル」が司どっている。
モデルの設定を変更する事で、紐づくオブジェクトの、例えば次の様な事項を変更できる。
- 編集画面におけるカラムの並び順
- 編集画面のカラムのコントロール型
- カラムの新設、削除
また、カラムには「リレーション」というタイプがある。
どのようなものかというと例えば、他のオブジェクトに登録された値を、編集画面における選択型(複数チェックボックスなど)カラムの選択肢として利用する事が出来る。
最たる例は、既存モデル「記事」のカラム「カテゴリ」がそれに当たる。
リレーションタイプのカラムは、編集表示(=オブジェクトの編集画面における表示)における(コントロールの)タイプ(以降、編集表示タイプ)を、次から指定できる。
- ダイアログ
- ラジオボタン
- ドロップダウン
- チェックボックス
- 階層
変更手順
ここでは、リレーションタイプのカラムで編集表示タイプが「チェックボックス」のものについて、編集表示タイプを「階層」に変える場合を考える。
- 対象カラムのリレーション先モデルの編集画面を開き、チェック項目「階層」にチェックが入ってない場合は、チェックを入れて保存する。
- 対象カラムの所属モデルの編集画面のカラム一覧より、対象カラムの行の右端「詳細」をクリック。
→ダイアログ「カラム詳細」が開く。 - カラムの「タイプ」を「階層」に変更し、保存。
→ダイアログが閉じ、モデルの編集画面にフォーカスが戻る。 - 画面下の「保存」ボタンを押す。
→設定が反映される。
コントロール型の変更作業による既存の登録値への影響の有無
次の確認手順を行ったところ、変化は見られなかったので、前述手順による既存の登録値の改変は無いと判断する。
- 対象モデルと紐づくオブジェクトの一覧画面にて、CSVエクスポート機能にて登録されたオブジェクトのCSVを取得。
※詳細な手順は公式を参照する事。
https://powercmsx.jp/about/im_export.html - 対象カラムに変更を加えた後、対象オブジェクト一覧に登録されたオブジェクト一つについて、編集画面を開き、値を変更しないまま「保存」ボタンを押す、という作業を行う。
- 手順1の要領でもう一度オブジェクトのCSVを取得。
- 変更前(=手順1)・変更後(=手順3)のそれぞれのCSVについて、対象カラムに対応する列の値を取得し、それを比較する。
その他関連する情報
リレーションタイプのカラムへの入力内容は、DBのテーブル「mt_relation」にレコードとして保持される模様。