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です。(例えば、印刷用フォームや、データベース内容の集計表など)


最終更新 08:09, 2008年4月29日 (火)。   このページは 1,851 回アクセスされました。