ケーススタディ:PowerCMS X でリレーション型のチェックボックスをカテゴリーの様な階層型に変更する

投稿日: 更新日:

はじめに

表題の件について、やるのが初めてで、手順や作業による影響が無かったので調べてみた。その結果を以降に記載する。

前提

PowerCMS X の仕様として、記事やページなどの「オブジェクト」がどんなデータを保持し、どんな入力項目(=カラム)を持つかは、オブジェクトと一意に紐づく「モデル」が司どっている。

モデルの設定を変更する事で、紐づくオブジェクトの、例えば次の様な事項を変更できる。

  • 編集画面におけるカラムの並び順
  • 編集画面のカラムのコントロール型
  • カラムの新設、削除

また、カラムには「リレーション」というタイプがある。
どのようなものかというと例えば、他のオブジェクトに登録された値を、編集画面における選択型(複数チェックボックスなど)カラムの選択肢として利用する事が出来る。
最たる例は、既存モデル「記事」のカラム「カテゴリ」がそれに当たる。

リレーションタイプのカラムは、編集表示(=オブジェクトの編集画面における表示)における(コントロールの)タイプ(以降、編集表示タイプ)を、次から指定できる。

  • ダイアログ
  • ラジオボタン
  • ドロップダウン
  • チェックボックス
  • 階層

変更手順

ここでは、リレーションタイプのカラムで編集表示タイプが「チェックボックス」のものについて、編集表示タイプを「階層」に変える場合を考える。

  1. 対象カラムのリレーション先モデルの編集画面を開き、チェック項目「階層」にチェックが入ってない場合は、チェックを入れて保存する。
  2. 対象カラムの所属モデルの編集画面のカラム一覧より、対象カラムの行の右端「詳細」をクリック。
    →ダイアログ「カラム詳細」が開く。
  3. カラムの「タイプ」を「階層」に変更し、保存。
    →ダイアログが閉じ、モデルの編集画面にフォーカスが戻る。
  4. 画面下の「保存」ボタンを押す。
    →設定が反映される。

コントロール型の変更作業による既存の登録値への影響の有無

次の確認手順を行ったところ、変化は見られなかったので、前述手順による既存の登録値の改変は無いと判断する。

  1. 対象モデルと紐づくオブジェクトの一覧画面にて、CSVエクスポート機能にて登録されたオブジェクトのCSVを取得。
    ※詳細な手順は公式を参照する事。
    https://powercmsx.jp/about/im_export.html
  2. 対象カラムに変更を加えた後、対象オブジェクト一覧に登録されたオブジェクト一つについて、編集画面を開き、値を変更しないまま「保存」ボタンを押す、という作業を行う。
  3. 手順1の要領でもう一度オブジェクトのCSVを取得。
  4. 変更前(=手順1)・変更後(=手順3)のそれぞれのCSVについて、対象カラムに対応する列の値を取得し、それを比較する。

その他関連する情報

リレーションタイプのカラムへの入力内容は、DBのテーブル「mt_relation」にレコードとして保持される模様。

関連するタグ

PowerCMS 3.04, リレーション