在創(chuàng)建模塊中我們已經(jīng)創(chuàng)建好了一個(gè)名為“test”的模塊,接下來(lái)我們繼續(xù)為這個(gè)模塊添加兩個(gè)控制器類。
phpcms v9的控制器就是模塊的類文件,位于phpcms/modules/模塊/目錄下面。類名成就是文件名+.php,例如一個(gè)名為mytest的控制器,那么他的命名為mytest.php即可。控制器類默認(rèn)繼承系統(tǒng)的函數(shù)庫(kù),可以直接使用。控制器類的類名稱與控制器文件名必須相同。
控制器類文件包含兩種形式:
1.mytest.php 控制器,前臺(tái)瀏覽(不含權(quán)限控制)
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
class mytest {
function __construct() {
}
public function init() {
$myvar = 'hello world!';
echo $myvar;
}
public function mylist() {
$myvar = 'hello world!this is a example!';
echo $myvar;
}
}
?>
這個(gè)控制器的url訪問(wèn)方法前面已經(jīng)介紹過(guò)了,
http://www.yourname.com/index.php?m=test&c=mytest
http://www.yourname.com/index.php?m=test&c=mytest&a=mylist
沒(méi)有填寫 “a” 的情況下,默認(rèn)調(diào)用init方法
2.mytest_admin.php 控制器,后臺(tái)管理(含權(quán)限控制)
后臺(tái)控制控制器需要加載admin模塊下的admin類,并繼承該類。需要注意的是因?yàn)槟闾砑拥目刂破黝惱^承了其他的類,你要小心你控制器的方法名不要和該類中的方法名一樣了,否則會(huì)造成影響,具體請(qǐng)查看admin類中有哪些方法。
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest_admin extends admin {
public function __construct() {
}
public function init() {
$myvar = 'oh,i am phpcmser';
echo $myvar;
}
}
?>
在控制器中增加模板調(diào)用
phpcms 可以實(shí)現(xiàn)完全的模板與程序分離,所以在我們的控制器程序中要加載模板,才可以更友好的顯示出來(lái)。
1.加載前臺(tái)模板
前臺(tái)模板文件在phpcms emplatesdefault模塊名稱 目錄中,本示例也就在phpcms emplatesdefault est中
加載模板方法如下:
include template('test', 'mytest', 'default');
其中 test為模塊名稱 mytest 為模板目錄下模板名稱,default為風(fēng)格名稱,默認(rèn)不填為defalut
在上面例子中如果要給mytest.php中init方法加載一個(gè)mytest的模板,如下
public function init() {
$var = 'hello world!';
include template('test', 'mytest', 'default');
}
這樣我們通過(guò)url訪問(wèn)該方法的時(shí)候也就加載了對(duì)應(yīng)的模板。
2.加載后臺(tái)模板
后臺(tái)模板文件在phpcmsmodules模塊名稱 emplates 目錄中,本示例也就在phpcmsmodules est emplates 中
加載模板方法如下:
include $this->admin_tpl('mytest_admin_list');
其中mytest_admin_list為phpcmsmodules est emplates中mytest_admin_list.tpl.php,注意:此處模板必須以.tpl.php 作為后綴
在上面例子中如果要給mytest_admin.php中init方法加載一個(gè)mytest_admin_list的模板,如下
public function init() {
$myvar = 'oh,i am phpcmser';
include $this->admin_tpl('mytest_admin_list');
}
下一篇 phpcms怎樣配置采集模塊