版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、PHPCMS V9二次開發(fā)教程官方版文件目錄結(jié)構(gòu)根目錄| api接口文件目錄| caches 緩存文件目錄 | configs 系統(tǒng)配置文件目錄 | caches_* 系統(tǒng)緩存目錄| phpcms phpcms框架主目錄 | languages 框架語言包目錄 | libs 框架主類庫、主函數(shù)庫目錄 | model 框架數(shù)據(jù)庫模型目錄 | modules 框架模塊目錄 | templates 框架系統(tǒng)模板目錄| phpsso_server phpsso主目錄| statics 系統(tǒng)附件包 | css 系統(tǒng)css包 | images 系統(tǒng)圖片包 | js 系統(tǒng)js包| uploadfile 網(wǎng)站
2、附件目錄| admin.php 后臺管理入口| index.php 程序主入口| crossdomain.xml FLASH跨域傳輸文件| robots.txt 搜索引擎蜘蛛限制配置文件| favicon.ico 系統(tǒng)icon圖標(biāo)PHPCMS V9 核心文件說明模塊與控制器模塊:phpcms v9框架中的模塊,位于phpcms/modules目錄中 每一個(gè)目錄稱之為一個(gè)模塊。即url訪問中的m。訪問content模塊示例:/index.php?m=content控制器: phpcms v9的控制器就是模塊的類文件,位于phpcms/modules/模
3、塊/目錄下面。類名成就是文件名+.php,例如一個(gè)名為abc的控制器,那么他的 命名為abc.php即可??刂破黝惸J(rèn)繼承系統(tǒng)的函數(shù)庫,可以直接使用??刂破黝惖念惷Q與控制器文件名必須相同。如果您創(chuàng)建了一個(gè)abc.php在 test模塊下,那么我們在瀏覽器里面輸入U(xiǎn)RL:/index.php?m=test& c=abc二次開發(fā)技巧如果要對已存在的控制器進(jìn)行二次開發(fā),為了方便升級不建議直接對內(nèi)核文件直接修改該,您可以通過“MY_*.php”的形式進(jìn)行二次開發(fā)。例如您要對改phpcms/mood/index.php進(jìn)行二次開發(fā)。您可以在與index.ph
4、p同級的目錄下建立MY_index.php?phpclass MY_index extends indexfunction _construct() parent:_construct();your code這樣當(dāng)您通過url訪問index控制器的時(shí)候,系統(tǒng)會默認(rèn)指向MY_index.php 并且原文件的方法將被繼承,可以直接使用。如果需要增加自己的全局函數(shù),可根據(jù)需要增加到/phpcms/libs/functions/global.func.php/extention.func.php中,不會影響升級數(shù)據(jù)模型基類:文件路徑:根目錄/phpcms/libs/classes/model.clas
5、s.php 代碼片段如下:加載數(shù)據(jù)模型后,可以的數(shù)據(jù)庫該類中方法進(jìn)行數(shù)據(jù)庫操作。表單調(diào)用類:文件路徑:根目錄/phpcms/libs/classes/form.class.php。 代碼片段如下:通過實(shí)例化該類可以,調(diào)用在程序中調(diào)用編輯器、表單上傳、日期選擇、欄目結(jié)構(gòu)等表單。 實(shí)例化方法:pc_base:load_sys_class(form, , 0);模板解析緩存類:文件路徑:根目錄/phpcms/libs/classes/template_cache.class.php 。 代碼片段如下:該類作用為解析模板,解析模板及更新模板緩存PHPCMS創(chuàng)建模塊開發(fā)流程為你的phpcms創(chuàng)建一個(gè)模塊
6、的一般開發(fā)流程是:創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)表;(沒有數(shù)據(jù)庫操作可略過)創(chuàng)建模塊目錄創(chuàng)建模塊控制器類;創(chuàng)建模塊類與模塊函數(shù);(如果只是簡單的模塊可以不必創(chuàng)建)創(chuàng)建模板文件;運(yùn)行和調(diào)試。第一、創(chuàng)建模塊文檔結(jié)構(gòu)phpcms v9框架中的模塊,位于phpcms/modules目錄中 每一個(gè)目錄稱之為一個(gè)模塊如果要創(chuàng)建一個(gè)模塊,只要在 phpcms/modules 目錄下創(chuàng)建文件夾并放入你的控制器類就可以了。例如我要開發(fā)一個(gè)叫做test的模塊,那么首先在phpcms/modules 目錄下創(chuàng)建文件夾,并將其命名為test。test模塊的標(biāo)準(zhǔn)結(jié)構(gòu)通常是這樣的。其中classes為模塊類庫包functions為模塊
7、函數(shù)庫包templates為模塊模板包這里通常放置含有權(quán)限控制的控制器模板,也就是后臺模板。如果您的模板有單獨(dú)的前臺模板,你需要在phpcmstemplatesdefault下創(chuàng)建一個(gè)您的模塊目錄來放置前臺模板,default為你的風(fēng)格包名稱,我們默認(rèn)適用default第二:創(chuàng)建模塊控制器類在創(chuàng)建模塊中我們已經(jīng)創(chuàng)建好了一個(gè)名為“test”的模塊,接下來我們繼續(xù)為這個(gè)模塊添加兩個(gè)控制器類。phpcms v9的控制器就是模塊的類文件,位于phpcms/modules/模塊/目錄下面。類名成就是文件名+.php,例如一個(gè)名為mytest的控制器,那么他的命名為mytest.php即可??刂破黝惸J(rèn)繼
8、承系統(tǒng)的函數(shù)庫,可以直接使用??刂破黝惖念惷Q與控制器文件名必須相同??刂破黝愇募瑑煞N形式:1.mytest.php 控制器,前臺瀏覽(不含權(quán)限控制)這個(gè)控制器的url訪問方法前面已經(jīng)介紹過了,/index.php?m=test&c=mytest/index.php?m=test&c=mytest&a=mylist沒有填寫 “a” 的情況下,默認(rèn)調(diào)用init方法2.mytest_admin.php 控制器,后臺管理(含權(quán)限控制)后臺控制控制器需要加載admin模塊下的admin類,并繼承該類。需要注意的
9、是因?yàn)槟闾砑拥目刂破黝惱^承了其他的類,你要小心你控制器的方法名不要和該類中的方法名一樣了,否則會造成影響,具體請查看admin類中有哪些方法。3.在控制器中增加模板調(diào)用phpcms 可以實(shí)現(xiàn)完全的模板與程序分離,所以在我們的控制器程序中要加載模板,才可以更友好的顯示出來。1).加載前臺模板前臺模板文件在phpcmstemplatesdefault模塊名稱 目錄中,本示例也就在phpcmstemplatesdefaulttest中加載模板方法如下:includetemplate(test,mytest,default);其中test為模塊名稱mytest為模板目錄下模板名稱,default為風(fēng)格
10、名稱,默認(rèn)不填為defalut在上面例子中如果要給mytest.php中init方法加載一個(gè)mytest的模板,如下publicfunctioninit()$var=hello world!;includetemplate(test,mytest,default);這樣我們通過url訪問該方法的時(shí)候也就加載了對應(yīng)的模板。2).加載后臺模板后臺模板文件在phpcmsmodules模塊名稱templates 目錄中,本示例也就在phpcmsmodulestesttemplates 中加載模板方法如下:include $this-admin_tpl(mytest_admin_list);其中myte
11、st_admin_list為phpcmsmodulestesttemplates中mytest_admin_list.tpl.php,注意:此處模板必須以.tpl.php 作為后綴在上面例子中如果要給mytest_admin.php中init方法加載一個(gè)mytest_admin_list的模板,如下publicfunctioninit()$myvar=oh,i am phpcmser;include $this-admin_tpl(mytest_admin_list);第三:創(chuàng)建數(shù)據(jù)庫模型類數(shù)據(jù)庫模型位于:phpcms/model/ 目錄下。數(shù)據(jù)模型文件的命名規(guī)則建議為數(shù)據(jù)表名稱+_model
12、.class.php如果在我們的創(chuàng)建的模塊中我要使用一個(gè)數(shù)據(jù)庫“test”,首先需要建立一個(gè)數(shù)據(jù)庫模型文件,文件名稱為test_model.class.php內(nèi)容如下:db_config=pc_base:load_config(database);$this-db_setting=default;$this-table_name=test;parent:_construct();?注意:1.數(shù)據(jù)庫模型類名稱必須與文件名稱相同;2.$this-db_setting = default為數(shù)據(jù)庫配置文件中配置數(shù)據(jù)庫鏈接池名稱,默認(rèn)為default,一般情況下不需要修改。3.$this-table_n
13、ame = test為數(shù)據(jù)表名稱這樣我們就建立好了一個(gè)數(shù)據(jù)庫模型類。在模塊的控制器中使用$this-db=pc_base:load_model(test_model);來加載。具體如下db=pc_base:load_model(test_model);publicfunctioninit()$result=$this-db-select();var_dump($result);?其中$this-db中所支持的方法請參照phpcms/libs/classes/model.class.php中方法PC標(biāo)簽使用說明在PHPCMS V9中我們正式開始需要PC標(biāo)簽做為數(shù)據(jù)的獲取的方式。PC標(biāo)簽是以下面的
14、方式進(jìn)行聲明pc:content action=lists cache=3600 num=20 page=$page/pcPC標(biāo)簽必須以pc開頭,并以/pc結(jié)尾的代碼片段。當(dāng)然不以/pc結(jié)尾并不會引起程序致命性的錯(cuò)誤,導(dǎo)致程序無法繼續(xù)運(yùn)行。以下為兩種已知可能會出現(xiàn)的問題:1. 當(dāng)網(wǎng)頁中出現(xiàn)兩個(gè)PC標(biāo)簽時(shí),可能會使得沒有閉合的PC標(biāo)簽之后的PC標(biāo)簽數(shù)據(jù)和其混亂。2. 在后臺可視化編輯時(shí),可能出現(xiàn)網(wǎng)頁結(jié)構(gòu)錯(cuò)亂的問題。PC標(biāo)簽分析:PC標(biāo)簽中pc:冒號之后跟隨的為模塊名。如上面的例子中調(diào)用的是內(nèi)容模型的PC標(biāo)簽。action=list這個(gè)形式所代表的是參數(shù)。每一個(gè)PHPCMS V9模型都為其PC標(biāo)簽
15、定義了調(diào)用的參數(shù)。其中有一些調(diào)用參數(shù)是系統(tǒng)保留的參數(shù),其對所有的PC標(biāo)簽都是有效的。參數(shù)必須使用參數(shù)名=參數(shù)值的方式填寫,多個(gè)參數(shù)之間使用空格分開(如下例),參數(shù)值可使用雙引號來包括,無論是什么形式的引號都必須是成對出現(xiàn)的。pc:content 參數(shù)名=參數(shù)值 參數(shù)名=參數(shù)值 參數(shù)名=參數(shù)值請查看PC標(biāo)簽保留參數(shù)相關(guān)章節(jié),以了解具體保留參數(shù)及其用途。PC標(biāo)簽分類:PC標(biāo)簽包含兩個(gè)類別,分別為:1. 工具類2. 模塊類工具類,大體上可以理解為PHPCMS V9所提供的一些工具箱。請查看PC標(biāo)簽工具箱相關(guān)章節(jié),以了解更多關(guān)于工具類的PC標(biāo)簽的更多信息。而模塊類,是PHPCMS V9各個(gè)模型提供給大
16、家調(diào)用模塊數(shù)據(jù)的數(shù)據(jù)接口。查看具體模塊的相關(guān)說明章節(jié),以了解更多關(guān)于模塊類的PC標(biāo)簽的更多信息。如何顯示PC標(biāo)簽中的數(shù)據(jù):默認(rèn)情況下PC標(biāo)簽中的數(shù)據(jù)都是數(shù)組方式返回的,你都可以通過 $data 來獲取到這個(gè)數(shù)組,如果你在PC標(biāo)簽中定義了return參數(shù),返回的數(shù)組將使用return的值進(jìn)行命令。一般情況下你可以使用如下的方式來顯示值:loop $data $key $val$valtitle/loop基中的$valurl和$valtitle需要具體根據(jù)所使用的PC標(biāo)簽,返回的數(shù)據(jù)來判斷。PC標(biāo)簽保留參數(shù)下表為PC標(biāo)簽保留參數(shù)表,幾乎所有的PC標(biāo)簽都支持這些保留參數(shù)設(shè)置變量名默認(rèn)值說明actio
17、nnull本參數(shù)的值表示為操作事件,模型類PC標(biāo)簽必須使用包含本參數(shù),以說明要進(jìn)行的操作。cache0緩存存儲時(shí)間(單位秒)num20獲取記錄的條數(shù),最后會被模板引擎處理成limit傳送到處理函數(shù)中。pagenull當(dāng)前分頁。一般填寫為$_GETpageurlrulenullURL規(guī)則returndata返回?cái)?shù)據(jù)變量名下例中是一個(gè)完整的使用例子。pc:content action=lists catid=25 num=20 page=$_GETpage return=dataloop $data $n $r$rtitle/loop/pcget標(biāo)簽GET標(biāo)簽源自于PHPCMS 2008版,其使用
18、SQL語句直接獲取數(shù)據(jù)的特性,成為大家制作模板的首選。在V9中這樣強(qiáng)大的工具也得到保留下來。GET標(biāo)簽使用方式如下:pc:get sql=SELECT * FROM phpcms_member cache=3600 page=$page dbsource=discuz return=dataloop $data $key $val$valusername/loop$pages/pc從上面的代碼里面可以看出GET標(biāo)簽所支持的參數(shù)。對照下面的列表了解每一個(gè)參數(shù)的用途:參數(shù)默認(rèn)值必須說明sqlnull是要執(zhí)行的SQL語句cache0否緩存時(shí)間,單位為秒page0否分頁,通過變量把當(dāng)前的分布傳給PC標(biāo)
19、簽進(jìn)行處理dbsourcenull否數(shù)據(jù)源,當(dāng)你通過系統(tǒng)后臺的數(shù)據(jù)源模塊配置過數(shù)據(jù)源時(shí),可把數(shù)據(jù)源名填寫到這里,系統(tǒng)會去對應(yīng)的數(shù)據(jù)源來讀取數(shù)據(jù)。如果要讀取本系統(tǒng)的數(shù)據(jù)請留空returndata否返回的數(shù)據(jù)的變量內(nèi)容模塊內(nèi)容模塊PC標(biāo)簽調(diào)用說明模塊名:content模塊提供的可用操作操作名說明lists內(nèi)容數(shù)據(jù)列表relation內(nèi)容相關(guān)文章hits內(nèi)容數(shù)據(jù)點(diǎn)擊排行榜category內(nèi)容欄目列表position內(nèi)容推薦位列表position操作說明如下:內(nèi)容推薦位列表(position):可用參數(shù):參數(shù)名是否必須默認(rèn)值說明posid是null推薦位IDcatid否null調(diào)用欄目IDthumb否
20、0是否僅必須縮略圖order否null排序類型num是null數(shù)據(jù)調(diào)用數(shù)量代碼例子:pc:content action=position posid=2 order=listorder DESC num=4loop $data $key $val $valtitle/loop/pc返回參數(shù)如下表:字段類型空默認(rèn)注釋titlechar(80)否NULL推薦位標(biāo)題urlchar否NULL推薦位鏈接地址inputtimeint(10)否NULL推薦位發(fā)布時(shí)間thumbchar是NULL推薦位縮略圖其他不定是根據(jù)模型所設(shè)置的加入到推薦位中字段名稱內(nèi)容列表(lists):可用參數(shù):參數(shù)名是否必須默認(rèn)值說
21、明catid否null調(diào)用欄目IDwhere否nullsql語句的where部分thumb否0是否僅必須縮略圖order否null排序類型num是null數(shù)據(jù)調(diào)用數(shù)量moreinfo否0是否調(diào)用副表數(shù)據(jù)提醒:從PHPCMS V9 Beta 版本開始支持moreinfo參數(shù)屬性,本參數(shù)表示在返回?cái)?shù)據(jù)的時(shí)候,會把副表中的數(shù)據(jù)也一起返回。一個(gè)內(nèi)容模型分為2個(gè)表,一個(gè)主表一個(gè)副表,主表中一般是保存了標(biāo)題、所屬欄目等等短小的數(shù)據(jù)(方便用于索引),而副表則保存了大字段的數(shù)據(jù),如內(nèi)容等數(shù)據(jù)。在模型管理中新建字段的時(shí)候,是允許你選擇存入到主表還是副表的(我們推薦的是,把不重要的信息放到副表中)。想要在列表中調(diào)
22、取副表的數(shù)據(jù)就需要在PC標(biāo)簽中使用moreinfo這個(gè)屬性。代碼例子:pc:content action=lists catid=2 order=id DESC num=4loop $data $key $val $valtitle/loop/pcwhere用法:pc:content action=lists catid=2 where=thumb!= AND status=99 order=id DESC num=4loop $data $key $val $valtitle/loop/pc返回參數(shù)如下表:字段類型空默認(rèn)注釋titlechar(80)否NULL推薦位標(biāo)題urlchar否NUL
23、L推薦位鏈接地址inputtimeint(10)否NULL推薦位發(fā)布時(shí)間thumbchar是NULL推薦位縮略圖其他不定是其他模型字段點(diǎn)擊排行榜(hits):可用參數(shù):參數(shù)名是否必須默認(rèn)值說明catid否null調(diào)用欄目IDday否0調(diào)用多少天內(nèi)的排行order否null排序類型(本月排行- monthviews DESC 、本周排行 - weekviews DESC、今日排行 - dayviews DESC)num是null數(shù)據(jù)調(diào)用數(shù)量代碼例子:pc:content action=hits catid=2 order=weekviews DESC num=10loop $data $key
24、$val $valtitle/loop/pc返回參數(shù)如下表:字段類型空默認(rèn)注釋titlechar(80)否NULL推薦位標(biāo)題urlchar否NULL推薦位鏈接地址inputtimeint(10)否NULL推薦位發(fā)布時(shí)間thumbchar是NULL推薦位縮略圖其他不定是其他模型字段相關(guān)文章(relation):可用參數(shù):參數(shù)名是否必須默認(rèn)值說明catid否null調(diào)用欄目IDrelation否$relation無需更改keywords否null內(nèi)容頁面取值:$rskeywordsnum是null數(shù)據(jù)調(diào)用數(shù)量代碼例子:pc:content action=relation relation=$relation catid=$catid num=5 keywords=$rskeywords loop $data $r $rtitle(date(Y-m-d,$rinputtime) /loop /pc返回參數(shù)如下表:字段類型空默認(rèn)注釋titlechar(80)否NULL推薦位標(biāo)題urlchar否NULL推薦位鏈接地址in
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高職作物生產(chǎn)(應(yīng)用技巧實(shí)操)試題及答案
- 2025年高職(樂器維修)琵琶修復(fù)技術(shù)綜合測試題及答案
- 2025年中職(醫(yī)用電子儀器應(yīng)用與維護(hù))心電圖機(jī)操作專項(xiàng)測試試題及答案
- 2025年中職新聞采編與制作(新聞采編制作應(yīng)用)試題及答案
- 2025年大學(xué)中國語言文學(xué)(外國文學(xué))試題及答案
- 2025年中職航海技術(shù)(航海氣象認(rèn)知)試題及答案
- 養(yǎng)老院老人生活設(shè)施維修人員晉升制度
- 養(yǎng)老院老人心理咨詢師行為規(guī)范制度
- 養(yǎng)老院護(hù)理服務(wù)標(biāo)準(zhǔn)制度
- 養(yǎng)老院入住老人生活照料制度
- 統(tǒng)編版六年級語文第一學(xué)期期末練習(xí)卷
- 2026年社區(qū)活動組織服務(wù)合同
- 兒童呼吸道感染用藥指導(dǎo)
- 防意外傷害安全班會課件
- 2025年國家基本公共衛(wèi)生服務(wù)考試試題(附答案)
- 2025年醫(yī)院社區(qū)衛(wèi)生服務(wù)中心工作總結(jié)及2026年工作計(jì)劃
- 2025-2026學(xué)年北師大版七年級生物上冊知識點(diǎn)清單
- 委托作品協(xié)議書
- 2025至2030中國芳綸纖維行業(yè)發(fā)展分析及市場發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報(bào)告
- 尾牙宴活動策劃方案(3篇)
- 生蠔課件教學(xué)課件
評論
0/150
提交評論