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

首頁 > CMS > PhpCMS > 正文

phpcms v9 創建模塊

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

一.創建一個模塊開發流程:

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

2.創建模塊目錄 

3.創建模塊控制器類; 

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

5.創建模板文件; 

6.運行和調試。

二,創建模塊目錄:分析

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

例如我要開發一個叫做test的模塊,那么首先在 phpcms/modules 目錄下創建文件夾,并將其命名為test.

標準結構:

classes:模塊類庫包

function:模塊函數庫包

templates:模塊模版包 通常放置含權限控制的控制器模版,也就是后臺模版.

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

三、創建模塊控制器類:

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

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

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

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

  1. <?php  
  2.   defined('IN_PHPCMS'or exit('No permission resources.');  
  3.   class mytest {  
  4.      function __construct() {  
  5.     }  
  6.     public function init() {  
  7.      $var = 'hello world!';  
  8.      echo $myvar;  
  9.      } 
  10.  
  11.     public function mylist() {  
  12.      $var = 'hello world!this is a example!';  
  13.      echo $myvar;  
  14.      }  
  15.   }  
  16. ?> 

這個控制器的url訪問方法:

index.php?m=test&c=mytest 

index.php?m=test&c=mytest&a=mylist

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

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

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

  1. <?php  
  2. defined('IN_PHPCMS'or exit('No permission resources.');  
  3. pc_base::load_app_class('admin','admin',0);  
  4. class mytest_admin extends admin {  
  5.   public function __construct() {  
  6.   }  
  7.   public function init() {  
  8.     $myvar = 'oh,i am phpcmser';  
  9.     echo $myvar//開源軟件:Vevb.com 
  10.   }  
  11. }  
  12. ?> 

在控制器中增加模板調用

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

1.加載前臺模板

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

include template('test', 'mytest', 'default');

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

  1. public function init() {  
  2.      $var = 'hello world!';  
  3.      include template('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. public function init() {  
  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.   defined('IN_PHPCMS'or exit('No permission resources.'); 
  3.   pc_base::load_sys_class('model''', 0); 
  4.   class test_model extends model { 
  5.     public function __construct() { 
  6.     $this->db_config = pc_base::load_config('database'); 
  7.     $this->db_setting = 'default'
  8.     $this->table_name = 'test'
  9.     parent::__construct(); 
  10.   } 
  11.  } 
  12. ?> 

注意:

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'or exit('No permission resources.'); 
  3.   class mytest { 
  4.     private $db
  5.      function __construct() { 
  6.       $this->db = pc_base::load_model('test_model'); 
  7.     } 
  8.     public function init() { 
  9.       $result = $this->db->select(); 
  10.       var_dump($result); 
  11.      } 
  12.   } 
  13. ?> 

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仪陇县| 休宁县| 远安县| 长兴县| 上虞市| 芒康县| 故城县| 尉氏县| 嵊泗县| 清徐县| 布拖县| 福泉市| 临邑县| 靖州| 水富县| 同德县| 杭州市| 都江堰市| 广州市| 阿克陶县| 瑞安市| 芮城县| 涞水县| 鲁山县| 五华县| 汤阴县| 读书| 工布江达县| 鄂伦春自治旗| 连云港市| 忻州市| 海南省| 左云县| 库伦旗| 巴东县| 钦州市| 门头沟区| 伊宁县| 封开县| 胶州市| 广饶县|