Phpinfo()を表示するカスタムビュー
出典: SugarForum.jp
実用的というよりも、こんなこともできるという一例として、
- phpinfo() の内容を表示する
だけ、というビューを作成します。
目次 |
STEP - 1 : ビュークラスの作成
SugarRoot/custom/include/MVC/View/views/view.phpinfo.php
あるいは、
SugarRoot/@モジュール名/views/view.phpinfo.php
に、下記内容のクラスを作成します。
require_once('include/MVC/View/SugarView.php');
class ViewPHPInfo extends SugarView {
function ViewPHPInfo(){
parent::SugarView();
}
function process() {
$this->display();
}
function display() {
phpinfo();
}
}
※process関数を上書きすることで、ヘッダの表示などを省略しています。
STEP - 2 : アクションとビューの対応付け
SugarRoot/modules/@モジュール名/controller.php
が存在しなければ、下記のように作成します。(モジュール名を仮にMyModuleとします)
既に存在する場合は、action_DetailView関数だけ追加します。
class MyModuleController extends SugarController
{
function action_PHPInfo() {
$this->view = 'phpinfo';
}
}
ビューとして、'phpinfo'を指定しています。これだけで、STEP-1で作成したViewPHPInfoクラスを使用するようになります。
作業は以上でOKです。index.php?module=MyModule&action=PHPInfo にアクセスしてみましょう。
アクションとビューの対応について
- URL : index.php?module=MyModule&action=PHPInfo
- アクション : action_PHPInfo()
が対応し、
- ビューの指定: phpinfo
- ファイル名 : view.phpinfo.php
- ビュークラス名ViewPHPInfo
が対応しています。
補記
上記の例はphpinfoを表示するだけで管理目的ぐらいにしか使えませんが、このようにビューの完全な乗っ取りも可能なことが分かります。標準のビューを使いにくいケースでは、自分で書いてしまった方が楽ですね。PHPでWebページを書く要領でOKです。(例えば、印刷用フォームや、データベース内容の集計表など)