php筆記之:初探PHPcms模塊開發(fā)介紹
由于工作關系,只能暫時放棄對mongodb的研究了 .開始研究PHPcms .
目前為止我已經基本完成了模塊的開發(fā).趁著周末來這里做個總結.我發(fā)現(xiàn)phpcms寫的還不錯,不過文檔什么的確實不多.
不說廢話了.對于phpcms的模塊開發(fā).首先要了解模塊的目錄結構.
我們可以在http://v9.help.phpcms.cn/html/2010/structure_0928/69.html
找到他的目錄結構 我們要開發(fā)的東東(也就是模塊)就在/phpcms/modules/下面
如果沒有什么特別的 在開發(fā)一個模塊之前先要按照目錄結構建立好相關目錄并且設計好數(shù)據(jù)庫表結構 比方說 我們建立一個模塊叫做我的模塊 my_test
下面應該是mytest下的目錄結構
mytest
--class //這個是mytest模塊會用到的類
--function//mytest模塊用到的函數(shù)
--install//安裝此模塊需要的一些配置文件和建立數(shù)據(jù)表myslq語句什么的在這里
--language//多語言的時候會用到
--config.ini.php//這個配置文件是用來描述整個模塊的一些信息
--extention.inc.php//這個是創(chuàng)建目錄結構 .這個文件也用來控制權限
--model.php//模塊使用了哪些數(shù)據(jù)模型.(可以理解為使用了哪些表.)
--model.sql//這個向數(shù)據(jù)庫里面插入模型的記錄
--my_test.sql//這個文件在安裝的時候會被執(zhí)行,把建立數(shù)據(jù)庫表的sql放進來
--templates //,mytest模塊用到的模板文件
--uninstall //卸載模塊時候用到的配置和文件
這個里面的文件我沒研究 回頭研究了補上.
my_test.php //這個是mytest模塊的后臺控制器文件`
index.php//這個是前臺的控制器,這個我沒寫東西.
建立完一個這樣的結構后 我們還需要在/phpcms/model/下面建立我們的數(shù)據(jù)模型
例如 my_test_model.class.php (這個使用了很典型的工廠模式)
具體每個文件里面寫了些什么.我們一個一個來看 .首先來看我們在model文件夾下面寫的那個文件.
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_sys_class('model', '', 0);
class my_test_model extends model {
public function __construct() {
$this->db_config = pc_base::load_config('database');
$this->db_setting = 'default';//默認的數(shù)據(jù)庫配置.//多個庫的話可以在這里選庫
$this->table_name = 'my_test';//這個就是表名稱,不用加表前綴
parent::__construct();
}
}
?>
第一行的作用是確定是不是在phpcms的運行框架內.
第二行加載系統(tǒng)的model類,后面的參數(shù)0 的意思是并不實例化.
最后一行調用了父類的構造方法.可以在phpcms/libs/classes/model.class.php中找到
而這個model類里面定義了很多對數(shù)據(jù)的操作方法 最基本的增刪改查。以后我再詳細說說model基本的一些方法。
接著來看看modules 里面的東東
我們一個個往下面看 第一個language 是用來支持多語言菜單的。
然后是config.ini.php,這個里面寫的是一些關于模塊安裝時候的信息。
文件里面是這個結構的
$module = 'mytest';//使用的model
$modulename = '這里是模塊的名稱';
$introduce = '模塊的描述信息';
$author = '作者';
$authorsite = '作者網站';
$authoremail = '作者email';
里面標注的很清楚了
接著是extention.inc.php 這個文件是用來創(chuàng)建后臺管理菜單的目錄結構的,也是用來控制權限的
$id= $menu_db->insert(array('name'=>'這里寫著操作名稱', 'parentid'=>父ID, 'm'=>'模塊', 'c'=>'控制器', 'a'=>'動作', 'data'=>'', 'listorder'=>排序, 'display'=>'是否顯示'),true);//最后的true是用來返回ID的
文件最后應該有一個數(shù)組,這個數(shù)組是用來插入系統(tǒng)的\language\zh-cn\system_menu.lang.php里面的 格式如下
$language = array(
'這里是你起的操作名稱'=>'這里是操作的中文翻譯',
類似:'mytest_init'=>'顯示列表'
);
然后是model.php 這個就是你使用了哪些數(shù)據(jù)模型 可以理解為使用了哪些表
return array('mytest','my_test_artcle');
然后是model.sql 這個是用來向系統(tǒng)的模型表里面插入數(shù)據(jù)用的
INSERT INTO `phpcms_module` (`module`, `name`, `url`, `iscore`, `version`, `description`, `setting`, `listorder`, `disabled`, `installdate`, `updatedate`) VALUES ();
然后是mytest.sql 建立你數(shù)據(jù)庫表的語句應該寫在這個文件里面
接著就是你所使用的模板 應該放在templates里面 命名的規(guī)則應該是 mytest_add.tpl.php
最后是你的控制器 這個有的研究了.控制器里面是針對你每個url傳遞過來的action也就是a=?的動作.默認動作是init
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
pc_base::load_app_class('admin','admin',0);
class mytest extends admin(){
public function __construct(){
parent::__construct;//調用父類的構造函數(shù)
}
public function init(){
echo "這里是默認的操作方法";
}
public function add(){
include $this->admin_tpl('mytest_add');//使用模板的方法
}
}
控制器里面寫好了 我們把上面的文件都寫完了就可以安裝我們的模塊了 。
- 使用PHPCMS搭建wap手機網站
- phpcms模塊開發(fā)之swfupload的使用介紹
- linux服務器下PHPCMS v9 安全配置詳解
- PHPCMS的使用小結
- CodeIgniter使用phpcms模板引擎
- phpcms的分類名稱和類別名稱的調用
- phpcms手機內容頁面添加上一篇和下一篇
- PHPCMS手機站偽靜態(tài)設置詳細教程
- PHPCMS忘記后臺密碼的解決辦法
- 解決phpcms更換javascript的幻燈片代碼調用圖片問題
- phpcms中的評論樣式修改方法
- PHPCMS V9 添加二級導航的思路詳解
- 如何給phpcms v9增加類似于phpcms 2008中的關鍵詞表
- PHPCMS遭遇會員投稿審核無效的解決方法
- Ajax實現(xiàn)phpcms 點贊功能實例代碼
- PHPCMS2008廣告模板SQL注入漏洞修復
- phpcms配置列表頁以及獲得文章發(fā)布時間
- phpcms v9禁止提交信息到官網方法詳解
相關文章
codeigniter上傳圖片不能正確識別圖片類型問題解決方法
這篇文章主要介紹了codeigniter上傳圖片不能正確識別圖片類型問題解決方法,這是一個不太常見的問題,但是遇到了的話會卡人很久,需要的朋友可以參考下2014-07-07如何用PHP來實現(xiàn)一個動態(tài)Web服務器
這篇文章介紹了如何用PHP來實現(xiàn)一個動態(tài)Web服務器,文章思路清晰,并附有演示代碼地址,需要的朋友可以參考下2015-07-07利用laravel+ajax實現(xiàn)文件上傳功能方法示例
最近在做的項目基于Laravel開發(fā),需要用到Ajax上傳,查了些資料,自己整理了下可用的方法。下面這篇文章主要給大家介紹了關于利用laravel+ajax實現(xiàn)文件上傳功能的相關資料,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08