在創(chuàng)建模塊中我們已經(jīng)創(chuàng)建好了一個名為“test”的模塊,接下來我們繼續(xù)為這個模塊添加兩個控制器類。
phpcms v9的控制器就是模塊的類文件,位于phpcms/modules/模塊/目錄下面。類名成就是文件名+.php,例如一個名為mytest的控制器,那么他的命名為mytest.php即可。控制器類默認繼承系統(tǒng)的函數(shù)庫,可以直接使用。控制器類的類名稱與控制器文件名必須相同。
控制器類文件包含兩種形式:
1.mytest.php 控制器,前臺瀏覽(不含權(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;
}
}
?>
這個控制器的url訪問方法前面已經(jīng)介紹過了,
http://www.yourname.com/index.php?m=test&c=mytest
http://www.yourname.com/index.php?m=test&c=mytest&a=mylist
沒有填寫 “a” 的情況下,默認調(diào)用init方法
2.mytest_admin.php 控制器,后臺管理(含權(quán)限控制)
后臺控制控制器需要加載admin模塊下的admin類,并繼承該類。需要注意的是因為你添加的控制器類繼承了其他的類,你要小心你控制器的方法名不要和該類中的方法名一樣了,否則會造成影響,具體請查看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 可以實現(xiàn)完全的模板與程序分離,所以在我們的控制器程序中要加載模板,才可以更友好的顯示出來。
1.加載前臺模板
前臺模板文件在phpcms emplatesdefault模塊名稱 目錄中,本示例也就在phpcms emplatesdefault est中
加載模板方法如下:
include template('test', 'mytest', 'default');
其中 test為模塊名稱 mytest 為模板目錄下模板名稱,default為風格名稱,默認不填為defalut
在上面例子中如果要給mytest.php中init方法加載一個mytest的模板,如下
public function init() {
$var = 'hello world!';
include template('test', 'mytest', 'default');
}
這樣我們通過url訪問該方法的時候也就加載了對應的模板。
2.加載后臺模板
后臺模板文件在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方法加載一個mytest_admin_list的模板,如下
public function init() {
$myvar = 'oh,i am phpcmser';
include $this->admin_tpl('mytest_admin_list');
}
上一篇 phpcms如何設置短消息
下一篇 phpcms怎樣配置采集模塊