phpcms v9 二次開發詳解

2021-06-22 03:25:14 字數 3101 閱讀 5752

一.建立乙個模組開發流程:

1.建立資料庫和資料表;(沒有資料庫操作可略過) 

2.建立模組目錄 

3.建立模組控制器類; 

4.建立模組類與模組函式;(如果只是簡單的模組可以不必建立) 

5.建立模板檔案; 

6.執行和除錯。 

一、2.建立模組目錄:分析

phpcms v9框架中的模組,位於phpcms/modules目錄中 每乙個目錄稱之為乙個模組

如果要建立乙個模組,只要在 phpcms/modules 目錄下建立資料夾並放入你的控制器類就可以了。

例如我要開發乙個叫做test的模組,那麼首先在 phpcms/modules 目錄下建立資料夾,並將其命名為test。

標準結構:

classes   :模組類庫包

function  :模組函式庫包

templates:模組模版包 通常放置含許可權控制的控制器模版,也就是後台模版

如果您的模板有單獨的前台模板,你需要在phpcms\templates\default下建立乙個您的模組目錄來放置前台模板,"default"為你的風格包名稱,我們預設適用default

一、3.建立模組控制器類:

在建立模組中我們已經建立好了乙個名為「test」的模組,接下來我們繼續為這個模組新增兩個控制器類。

phpcms  v9的控制器就是模組的類檔案,位於phpcms/modules/模組/目錄下面。類名成就是檔名+.php,例如乙個名為mytest的控制器,那 麼他的命名為mytest.php即可。控制器類預設繼承系統的函式庫,可以直接使用。控制器類的類名稱與控制器檔名必須相同。

控制器類檔案包含兩種形式:

1.mytest.php 控制器,前台瀏覽(不含許可權控制)

<?php 

defined('in_phpcms') or exit('no permission resources.'); 

class mytest  

public function init() 

public function mylist()  

} ?>

這個控制器的url訪問方法

&a=mylist

沒有填寫 「a」 的情況下,預設呼叫init方法

2.mytest_admin.php 控制器,後台管理(含許可權控制)

後台控制控制器需要載入admin模組下的admin類,並繼承該類。需要注意的是因為你新增的控制器類繼承了其他的類,你要小心你控制器的方法名不要和該類中的方法名一樣了,否則會造成影響,具體請檢視admin類中有哪些方法。

<?php 

defined('in_phpcms') or exit('no permission resources.'); 

class mytest_admin extends admin  

public function init()  

} ?>

在控制器中增加模板呼叫

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

1.載入前台模板

前台模板檔案在phpcms\templates\default\模組名稱 目錄中,本示例也就在phpcms\templates\default\test中

載入模板方法如下:

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

其中 test為模組名稱 mytest 為模板目錄下模板名稱,default為風格名稱,預設不填為de****t

在上面例子中如果要給mytest.php中init方法載入乙個mytest的模板,如下

public function init() 

這樣我們通過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的模板,如下

public function init()  

二:建立資料庫模型類:

資料庫模型位於:phpcms/model/ 目錄下。

資料模型檔案的命名規則建議為資料表名稱+'_model.class.php'

如果在我們的建立的模組中我要使用乙個資料庫「test」,首先需要建立乙個資料庫模型檔案,檔名稱為'test_model.class.php'

內容如下:

<?php

defined('in_phpcms') or exit('no permission resources.');

pc_base::load_sys_class('model', '', 0);

class test_model extends model 

}?>

注意:1.資料庫模型類名稱必須與檔名稱相同;

2.$this->db_setting = 'default'為資料庫配置檔案中配置資料庫鏈結池名稱,預設為default,一般情況下不需要修改。

3.$this->table_name = 'test'為資料表名稱

這樣我們就建立好了乙個資料庫模型類。

在模組的控制器中使用

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

來載入。

具體如下

<?php

defined('in_phpcms') or exit('no permission resources.');

class mytest 

public function init() 

}?>

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

postek二次開發 POSTEK二次開發介面

例項簡介 例項截圖 核心 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using ...

mcms二次開發 YzmCMS二次開發手冊

摘要 yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有一.yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有乙個統一的入口...

mcms二次開發 YzmCMS二次開發手冊

yzmcms是採用mvc設計模式開發,基於模組和操作的方式進行訪問,採用單一入口模式進行專案部署和訪問,無論訪問任何乙個模組或者功能,只有乙個統一的入口。一 基本目錄結構.根目錄 cache 快取目錄 必須可寫入 common 全站公共目錄 必須可寫入 uploads 預設上傳目錄 必須可寫入 yz...