国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > PhpCMS > 正文

phpcms v9 二次開發之構建模塊全過程

2024-09-10 07:15:21
字體:
來源:轉載
供稿:網友

第一:開發流程

為你的phpcms創建一個模塊的一般開發流程是:

創建數據庫和數據表,沒有數據庫操作可略過.

創建模塊目錄

創建模塊控制器類;

創建模塊類與模塊函數,如果只是簡單的模塊可以不必創建.

創建模板文件;

運行和調試。

第二:創建模塊

phpcms v9框架中的模塊,位于phpcms/modules目錄中 每一個目錄稱之為一個模塊,如果要創建一個模塊,只要在 phpcms/modules 目錄下創建文件夾并放入你的控制器類就可以了.

例如我要開發一個叫做test的模塊,那么首先在 phpcms/modules 目錄下創建文件夾,并將其命名為test,test模塊的標準結構通常是這樣的:

其中,classes為模塊類庫包,functions為模塊函數庫包,templates為模塊模板包這里通常放置含有權限控制的控制器模板,也就是后臺模板.

如果您的模板有單獨的前臺模板,你需要在phpcms/templates/default下創建一個您的模塊目錄來放置前臺模板,"default"為你的風格包名稱,我們默認適用default.

第三:創建模塊控制器類

在創建模塊中我們已經創建好了一個名為“test”的模塊,接下來我們繼續為這個模塊添加兩個控制器類.

phpcms v9的控制器就是模塊的類文件,位于phpcms/modules/模塊/目錄下面,類名成就是文件名+.php,例如一個名為mytest的控制器,那么他的命名為mytest.php即可,控制器類默認繼承系統的函數庫,可以直接使用,控制器類的類名稱與控制器文件名必須相同.

控制器類文件包含兩種形式:

1.mytest.php 控制器,前臺瀏覽,不含權限控制,代碼如下:

  1. <?php 
  2.   defined('IN_PHPCMS')orexit('No permission resources.'); 
  3.   classmytest{ 
  4.     function__construct(){ 
  5.     } 
  6.     publicfunctioninit(){ 
  7.      $var='hello world!'
  8.      echo $myvar
  9.      } 
  10.  
  11.     publicfunctionmylist(){ 
  12.      $var='hello world!this is a example!'
  13.      echo $myvar
  14.      } 
  15.   } 
  16. ?> 

這個控制器的url訪問方法前面已經介紹過了.

http://m.survivalescaperooms.com/index.php?m=test&c=mytest

http://m.survivalescaperooms.com/index.php?m=test&c=mytest&a=mylist

沒有填寫 “a” 的情況下,默認調用init方法.

2.mytest_admin.php 控制器,后臺管理,含權限控制.

后臺控制控制器需要加載admin模塊下的admin類,并繼承該類。需要注意的是因為你添加的控制器類繼承了其他的類,你要小心你控制器的方法名不要和該類中的方法名一樣了,否則會造成影響,具體請查看admin類中有哪些方法。

  1. <?php 
  2. defined('IN_PHPCMS')orexit('No permission resources.'); 
  3. pc_base::load_app_class('admin','admin',0); 
  4. classmytest_adminextendsadmin{ 
  5.   publicfunction__construct(){ 
  6.   } 
  7.   publicfunctioninit(){ 
  8.     $myvar='oh,i am phpcmser'
  9.     echo $myvar
  10.   } 
  11. ?> 

在控制器中增加模板調用.

phpcms 可以實現完全的模板與程序分離,所以在我們的控制器程序中要加載模板,才可以更友好的顯示出來。

1.加載前臺模板

前臺模板文件在phpcms/templates/default/模塊名稱 目錄中,本示例也就在phpcms/templates/default/test中,加載模板方法如下:

includetemplate('test','mytest','default');

其中test為模塊名稱mytest為模板目錄下模板名稱,default為風格名稱,默認不填為defalut,在上面例子中如果要給mytest.php中init方法加載一個mytest的模板,如下:

  1. publicfunctioninit(){ 
  2.    $var='hello world!'
  3.    includetemplate('test','mytest','default'); 
  4.  } 

這樣我們通過url訪問該方法的時候也就加載了對應的模板.

2.加載后臺模板

后臺模板文件在phpcms/modules/模塊名稱/templates 目錄中,本示例也就在phpcms/modules/test/templates 中,加載模板方法如下:

include $this->admin_tpl('mytest_admin_list');

其中mytest_admin_list為phpcms/modules/test/templates中mytest_admin_list.tpl.php,注意:此處模板必須以.tpl.php 作為后綴,在上面例子中如果要給mytest_admin.php中init方法加載一個mytest_admin_list的模板,如下:

  1. publicfunctioninit(){ 
  2.    $myvar='oh,i am phpcmser'
  3.    include $this->admin_tpl('mytest_admin_list'); 
  4.  }  

第四:創建數據庫模型類

數據庫模型位于:phpcms/model/ 目錄下。

數據模型文件的命名規則建議為數據表名稱+'_model.class.php'

如果在我們的創建的模塊中我要使用一個數據庫“test”,首先需要建立一個數據庫模型文件,文件名稱為'test_model.class.php',內容如下:

  1. <?php 
  2.  
  3.   defined('IN_PHPCMS')orexit('No permission resources.'); 
  4.  
  5.   pc_base::load_sys_class('model','',0); 
  6.  
  7.   classtest_modelextendsmodel{ 
  8.  
  9.     publicfunction__construct(){ 
  10.  
  11.     $this->db_config=pc_base::load_config('database'); 
  12.  
  13.     $this->db_setting='default'
  14.  
  15.     $this->table_name='test'
  16.  
  17.     parent::__construct(); 
  18.  
  19.   } 
  20.  
  21.  } 
  22.  
  23. ?> 

注意:

1.數據庫模型類名稱必須與文件名稱相同;

2.$this->db_setting = 'default'為數據庫配置文件中配置數據庫鏈接池名稱,默認為default,一般情況下不需要修改。

3.$this->table_name = 'test'為數據表名稱

這樣我們就建立好了一個數據庫模型類,在模塊的控制器中使用:

$this->db=pc_base::load_model('test_model');

來加載,具體如下:

  1. <?php 
  2.   defined('IN_PHPCMS')orexit('No permission resources.'); 
  3.   classmytest{ 
  4.     private$db
  5.     function__construct(){ 
  6.       $this->db=pc_base::load_model('test_model'); 
  7.     } 
  8.     publicfunctioninit(){ 
  9.       $result=$this->db->select(); 
  10.       var_dump($result); 
  11.      } 
  12.   } 
  13. ?> 

其中$this->db中所支持的方法請參照phpcms/libs/classes/model.class.php中方法.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武城县| 丰宁| 抚顺县| 贡觉县| 文登市| 蛟河市| 抚宁县| 张家港市| 贵溪市| 沛县| 灵山县| 丰城市| 安多县| 临猗县| 瑞丽市| 子洲县| 大姚县| 银川市| 恩施市| 井冈山市| 九江市| 霞浦县| 香港 | 白朗县| 丰原市| 聂拉木县| 汨罗市| 四子王旗| 隆尧县| 济宁市| 循化| 榆中县| 永靖县| 左权县| 东源县| 长岛县| 靖西县| 资源县| 南昌县| 慈溪市| 长宁县|