PowerCMS Xでは、「モデル」機能によって、データベースのテーブルの構造を定義し、管理画面の入力フォームを同時に定義することができます。 「モデル」とは、Model View Controllerにおけるモデルを指しますが、PowerCMS XではいわゆるMVC2における「モデル=データ」の部分を担います。
既存のモデルをカスタマイズする、または新しいモデルを作るには、システムメニューの「システムオブジェクト」→「モデル」を選択し、既存のモデルを選択するか、「新しいモデル」をクリックします。
rev_note
, rev_changed
以外のカラムプロパティ名(オプション) | 説明 | 生成されるカラム |
---|---|---|
システムに表示 | システムメニューにリンクを表示します。 | |
メニュータイプ | メニューの表示位置を指定します。 | |
自動監査 | MT::Object(PowerCMS)のauditにあたる設定です。 | created_on / created_by / modified_on / modified_by |
タグ付け | オブジェクトに「タグ」を付与できるようにします。 | tags (擬似カラム) |
テンプレート・タグ | ダイナミック・タグを利用可能にします。 | |
ベースネーム | ベースネーム(システムもしくはスペースで自動設定されるユニークな識別子)カラムを追加します。 | basename |
ユーザーをアサイン | 「ステータス対応」と「有効期限対応」をあわせて設定することで、ワークフローの対象とします。 | user_id / previous_owner |
リビジョン対応 | オブジェクトのリビジョンを保存可能にします。 | rev_type / rev_object_id / rev_changed / rev_note / rev_diff |
ステータス対応 | 「有効・無効」もしくは「下書き・レビュー・承認依頼・公開予約・公開・公開終了」を指定できるようにします。 | status |
有効期限対応 | ステータスを「下書き・レビュー・承認依頼・公開予約・公開・公開終了」で管理できるようにします。「ユーザーをアサイン」をあわせて設定することで、ワークフローの利用が可能になります。 | |
階層 | オブジェクトを階層管理可能にします(例 : カテゴリ / フォルダ)。 | parent_id |
アセット | オブジェクトに複数のアセットを関連づけられるようにします。 | assets (擬似カラム) |
添付ファイル | オブジェクトに複数の添付ファイルを関連づけられるようにします。 | attachmentfiles (擬似カラム) |
UUID | 自動的に設定されるUUIDカラムを追加します。 | uuid |
インポート & エクスポート | CSVインポート、エクスポートの対象とします。 | |
ダイアログ・ビュー | 「リレーション」型の(擬似)カラムを作成し、編集表示「ダイアログ」を指定した時、権限の有無に関わらずオブジェクトをダイアログで選択可能にします。 | |
複製 | オブジェクトの一覧画面または編集画面でオブジェクトを「複製」可能にします。 | |
フォーム | オブジェクトに「フォーム」を関連づけられるようにします。 | form_id |
スペースの子テーブル | オブジェクトをスペース(WorkSpace)の子オブジェクトとします。 | workspace_id |
スペースに表示 | スペース(WorkSpace)メニューに一覧画面へのリンクを表示します(表示位置はシステムのメニュータイプに準じます)。 | workspace_id |
ダッシュボードに表示 | 「モデル」ダッシュボードにウィジェットを表示します。 ※ 「スペースに表示」オプションが有効の場合に選択可能 |
|
表示順 | メニューにおける表示順(数字)を設定します。一覧画面でドラッグ & ドロップで設定することもできます。 | |
ソート可 | 編集画面に数字を入力するか、一覧画面でドラッグ & ドロップで表示順を設定できます。 | order |
上記オプションのうち、いくつか抜粋して補足説明します。
モデルの一覧画面へのリンクをシステムメニュー、スペースメニューにそれぞれ表示させることができます。表示位置の指定は「オプション」→「メニュータイプ」ドロップダウンで行います。頻繁にアクセスするモデルを「パネル」に指定すると、常にメニューに表示されるようになります。
※ パネルに表示されるモデル数は、環境変数:panel_limit で設定します。設定値を超えたものについては、ドロップダウンメニュー内に移動します。(初期値:5)
尚、それぞれのメニューの表示順は、モデルの一覧画面でドラッグ&ドロップで並べ替えできます(表示順カラムが表示されない時は、一覧画面右上の「画面オプション」の設定を確認ください。
記事、ページの作成・編集画面が参考になります。下記のような欄が追加され、タグ付けできるようになります。
チェックが有ればmt+モデル名+カラム名のテンプレートタグを使えるようになります。
例 : mt:BannerName
バナーモデルの「テンプレート・タグ」にチェックがないと、このタグは使えません。
ユーザーを選択できるようになり、所有者を変更できます。
あわせてステータス対応、有効期限対応し、ワークフローの設定をすると、添付のような表示に変わり、ワークフローを利用できるようになります。
変更履歴を保存するようになります。
一覧画面に「階層の管理」ボタンが追加されます。
下記の画面から、ドラッグ&ドロップで階層管理が可能になります。
階層付きのオブジェクトは以下のテンプレートタグで、ネストして出力できます。
https://powercmsx.jp/about/system_tags.html#nestableobjects
アセットとの1対多のリレーションです。リットテキストを利用している時、リッチテキストに貼り付けられたアセットが自動で追加されます。
PDFマニュアルの70P以降、または下記のページを参照してください。
https://powercmsx.jp/about/attachment_files.html
「30e34863-1c24-48ec-8ad9-ad07acdafab3」のようなユニークな値が付与されます。
UUIDの指定のあるモデルは、ExternalPreview(外部プレビュー)の対象とすることができます。
https://powercmsx.jp/about/external_preview.html
フォームとの1対1のリレーションを設定できます。
workspace_idが追加されモデルのオブジェクトはスペースの子オブジェクトとなります。スペースを削除すると、配下のオブジェクトも削除されます。
ウィジェットの下部に並んでいるものがこれにあたります。ワークスペースのダッシュボードに表示され、新規作成などがダイレクトに行えます。