phpcms v9 建立模組

2021-08-01 17:25:15 字數 3007 閱讀 3109

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

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訪問方法

index.php?m=test&c=mytest 

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

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

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

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

在控制器中增加模板呼叫

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中方法

PHPCMS V9 注射利用

在用bugscan 白帽子神器 檢測朋友 的時候碰到這個authkey。順便把利用 給大家分享下。本指令碼僅供白帽子安全測試使用,如有用於非法途徑,與作者無關 小白第一次寫東西,大牛勿噴 獲取檢測網域名稱 domain url domain url post url echo 判斷網域名稱是否為空,...

PHPCMS V9 加密規則

phpcms v9 加密規則 加密方式 md5 md5 password encrypt 第一步 對輸入的密碼32位小寫 md5 對輸入的密碼進行trim過濾 第三步 第二步結果密碼32位小寫 md5 例子 密碼 123456 encrypt vcmkn3 如下 a md5 123456 echo ...

PHPCMS V9 加密規則

phpcms v9 加密規則 加密方式 md5 md5 password encrypt 第一步 對輸入的密碼32位小寫 md5 對輸入的密碼進行trim過濾 第三步 第二步結果密碼32位小寫 md5 例子 密碼 123456 encrypt vcmkn3 如下 a md5 123456 echo ...