MVC
出典: SugarForum.jp
MVCの構成要素は、モデル、ビュー、そしてコントローラです。Sugarではそれぞれが
- モデル: SugarBean + verdefs
- ビュー: SugarView + メタファイル
- コントローラ: SugarController (+ アクションファイル)
にあたります。
独自モジュールを作成する際、最低限必要なのは、SugarBeanを継承したBeanクラスと、verdefsファイルとlistviewdefsやdetailviewdefsなどのメタファイルです。
editview、detailview、listviewなどの標準のビューを利用する限りは、ビューやコントローラクラスのことはあまり考える必要がありません。ただし、独自のものを作る場合は、SugarViewやSugarControllerを継承したクラスを用意しなくてはなりません。
ファイルの配置
モジュール用のコントローラは、
SugarRoot/modules/@モジュール名/controller.php
に配置します。クラス名は「@モジュール名+Controller」とします。
モジュール用のビューは、
SugarRoot/modules/@モジュール名/views/view.@ビュー名.php
に配置します。クラス名は「@モジュール名+View+@ビュー名」とします。
独自アクションとビュー
Sugarでは、独自のアクションを定義するには「アクション名.php」というファイル(=アクションファイル)を、モジュールディレクトリ内に配置するというスタイルを取ってきました。例えば、Saveアクションのアクションファイルは、Save.php という具合です。アクションファイルには、処理内容が記述され、そのままビューを表示するか、他のアクション(ビュー)にリダイレクトされます。 (Sugarの古いコーディングでは、「アクション」はコントローラとビュー両方の意味を含むように思われるため、注意が必要です)
ただ、この方法ではSugarViewを利用できず、例えば、ヘッダやフッタを隠すといった細かい制御ができません。SugarViewクラスを利用した独自ビューを使うには、モジュール用の独自コントローラを配置して、ビューを指定します。例えば、Repairアクションからview.repair.phpを呼び出すには、下記のようにコントローラクラスに「action_」ではじまる関数を追加します。
function action_Repair() {
$this->view = 'repair';//ビューにview.repair.phpを指定
}