seo每天一貼
東莞建網(wǎng)站分享PHPCMS二次開發(fā)經(jīng)驗
家好網(wǎng)絡(luò)二次開發(fā)phpcmsv9大型系統(tǒng),的一些了解;現(xiàn)在分享給大家!
模塊:
phpcmsv9框架中的模塊,位于phpcms/modules目錄中每一個目錄稱之為一個模塊。即url訪問中的m。
訪問content模塊示例:http://g3674.cn/index.php?m=content
控制器:
phpcmsv9的控制器就是模塊的類文件,位于phpcms/modules/模塊/目錄下面。類名成就是文件名+.php,例如一個名為abc的控制器,那么他的命名為abc.php即可。控制器類默認繼承系統(tǒng)的函數(shù)庫,可以直接使用??刂破黝惖念惷Q與控制器文件名必須相同。如果您創(chuàng)建了一個abc.php在test模塊下,那么我們在瀏覽器里面輸入URL:http://g3674.cn/index.php?m=test&c=abc
二次開發(fā)技巧
如果要對已存在的控制器進行二次開發(fā),為了方便升級不建議直接對內(nèi)核文件直接修改該,您可以通過“MY_*.php”的形式進行二次開發(fā)。
例如您要對改phpcms/mood/index.php進行二次開發(fā)。您可以在與index.php同級的目錄下建立"MY_index.php"
<?php
classMY_indexextendsindex{
function__construct(){
parent::__construct();
}
……yourcode
}
這樣當(dāng)您通過url訪問index控制器的時候,系統(tǒng)會默認指向MY_index.php并且原文件的方法將被繼承,可以直接使用。
系統(tǒng)配置文件
文件路徑:根目錄/caches/configs
database.php數(shù)據(jù)庫配置文件
system.php系統(tǒng)配置文件
route.php路由配置文件
調(diào)用方法
如調(diào)用系統(tǒng)配置中的web_path:
pc_base::load_config('system',web_path');
CMS入口文件:
PHPCMS是采用MVC設(shè)計模式開發(fā),基于模塊和操作的方式進行訪問,采用單一入口模式進行項目部署和訪問,無論訪問任何一個模塊或者功能,只有一個統(tǒng)一的入口。
入口程序是在前期處理用戶請求的引導(dǎo)程序。它是唯一一個可以被最終用戶可以直接請求運行的。
文件路徑:根目錄/index.php
<?php
define('PHPCMS_PATH',dirname(__FILE__).DIRECTORY_SEPARATOR);
includePHPCMS_PATH.'/phpcms/base.php';
pc_base::creat_app();
?>
這段代碼首先加載了phpcms框架的引導(dǎo)文件base.php,然后它根據(jù)指定的配置文件建立了一個Web應(yīng)用實例并運行。
Phpcmsv9后臺內(nèi)容管理
Phpcmsv9后臺文章發(fā)布
PHPCMSV9結(jié)構(gòu)設(shè)計
根目錄
|–api結(jié)構(gòu)文件目錄
|–caches緩存文件目錄
|–configs系統(tǒng)配置文件目錄
|–caches_*系統(tǒng)緩存目錄
|–phpcmsphpcms框架主目錄
|–languages框架語言包目錄
|–libs框架主類庫、主函數(shù)庫目錄
|–model框架數(shù)據(jù)庫模型目錄
|–modules框架模塊目錄
|–templates框架系統(tǒng)模板目錄
|–phpsso_serverphpsso主目錄
|–statics系統(tǒng)附件包
|–css系統(tǒng)css包
|–images系統(tǒng)圖片包
|–js系統(tǒng)js包
|–index.php程序主入口
PHPCMS框架入口文件:
文件路徑:根目錄/phpcms/base.php代碼片段如下:
<?php
define('IN_PHPCMS',true);
define('PC_PATH',dirname(__FILE__).DIRECTORY_SEPARATOR);
if(!defined('PHPCMS_PATH'))define('PHPCMS_PATH',PC_PATH.'..'.DIRECTORY_SEPARATOR);
define('CACHE_PATH',PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR);
……
?>
該文件為框架入口文件,包含實例化系統(tǒng)/模塊類方法,調(diào)用系統(tǒng)/模塊方法,系統(tǒng)常用常量等。如:
pc_base::load_model(‘*_model’)加載數(shù)據(jù)庫模型pc_base::load_sys_class(‘classname’)實例化系統(tǒng)類
pc_base::load_app_class(‘classname’,’admin’)實例化模塊類
pc_base::load_sys_func(‘funcfile’)調(diào)用系統(tǒng)函數(shù)庫
全局函數(shù)文件:
文件路徑:根目錄/phpcms/libs/functions/global.func.php代碼片段如下:
<?php
functionnew_addslashes($string){
if(!is_array($string))returnaddslashes($string);
foreach($stringas$key=>$val)$string[$key]=new_addslashes($val);
return$string;
}
……
?>
該文件中的函數(shù),為全系統(tǒng)基礎(chǔ)函數(shù),可以在系統(tǒng)中直接調(diào)用。
二次開發(fā)技巧:
如果需要增加自己的全局函數(shù),可根據(jù)需要增加到/phpcms/libs/functions/global.func.php/extention.func.php中,不會影響升級
數(shù)據(jù)模型基類:
文件路徑:根目錄/phpcms/libs/classes/model.class.php代碼片段如下:
<?php
pc_base::load_sys_class('db_factory','',0);
classmodel{//數(shù)據(jù)庫配置
protected$db_config='';//數(shù)據(jù)庫連接
protected$db='';//調(diào)用數(shù)據(jù)庫的配置項
protected$db_setting='default';//數(shù)據(jù)表名
protected$table_name='';//表前綴
public$db_tablepre='';
……
?>
加載數(shù)據(jù)模型后,可以的數(shù)據(jù)庫該類中方法進行數(shù)據(jù)庫操作。
表單調(diào)用類:
文件路徑:根目錄/phpcms/libs/classes/form.class.php。代碼片段如下:
<?php
classform{
//編輯器調(diào)用
publicstaticfunctioneditor($textareaid='content',$toolbar='basic',$module='',$catid='',$color='',$allowupload=0,$allowbrowser=1,$alowuploadexts='',$height=200,$disabled_page=0){
}
//圖片上傳調(diào)用
publicstaticfunctionimages($name,$id='',$value='',$moudle='',$catid='',$size=50,$class='',$ext='',$alowexts='',$thumb_setting=array(),$watermark_setting=0){
}
……
?>
通過實例化該類可以,調(diào)用在程序中調(diào)用編輯器、表單上傳、日期選擇、欄目結(jié)構(gòu)等表單。實例化方法:pc_base::load_sys_class('form','',0);
模板解析緩存類:
文件路徑:根目錄/phpcms/libs/classes/template_cache.class.php。代碼片段如下:
<?php
finalclasstemplate_cache{
publicfunctiontemplate_compile($module,$template,$style=‘default’){
$tplfile=$_tpl=PC_PATH.'templates'.DIRECTORY_SEPARATOR.$style.DIRECTORY_SEPARATOR.$module.DIRECTORY_SEPARATOR.$template.'.html';
……
?>
該類作用為解析模板,解析模板及更新模板緩存
創(chuàng)建模塊控制器類
為test模塊增加一個名為myest的控制器文件路徑:根目錄/phpcms/modules/test/mytest.php。代碼片段如下:
<?php
defined('IN_PHPCMS')orexit('Nopermissionresources.');
classmytest{
function__construct(){
}
publicfunctioninit(){
$var='helloworld!';
echo$myvar;
}
publicfunctionmylist(){
$var='helloworld!thisisaexample!';
echo$myvar;
}
}
?>
常用操作列表(1)
1.調(diào)用數(shù)據(jù)庫模型
$this->db=pc_base::load_model('test_model');
其中$this->db中所支持的方法請參照phpcms/libs/classes/model.class.php中方法
2.加載系統(tǒng)類
$http=pc_base::load_sys_class('http');//實例化http類
pc_base::load_sys_class('format','',0);//調(diào)用form類,不進行實例化操作3.加載系統(tǒng)函
3.加載系統(tǒng)函數(shù)庫
pc_base::load_sys_func('mail');//調(diào)用mail函數(shù)包
4.加載模塊類
$test=pc_base::load_sys_class(‘classname‘,’test’);//實例化test模塊下classname類
5.加載模塊函數(shù)庫
pc_base::load_sys_func(‘global‘,’test’);//調(diào)用test模塊的global函數(shù)包
常用操作列表(2)
6.加載前臺模板
includetemplate('test','mytest','default');
7.加載后臺模板
include$this->admin_tpl('mytest_admin_list');
8.權(quán)限控制
后臺控制控制器需要加載admin模塊下的admin類,并繼承該類
<?php
defined('IN_PHPCMS')orexit('Nopermissionresources.');
pc_base::load_app_class('admin','admin',0);
classmytest_adminextendsadmin{
//這個控制器需要登錄后臺才可以訪問}
?>
PHPCMSV9模板與標簽
PC標簽
評論模塊
會員模塊
友情鏈接模塊
投票模塊
公告模塊
專題模塊
內(nèi)容模塊
工具箱
json工具箱
xml工具箱
get標簽
碎片工具箱
手 機:15118212450
電 話:0769-33549760
Q Q:563980989 / 1751061171
Email:563980989@qq.com
地 址:廣東東莞市莞城區(qū)旗峰路旗峰樓601室