帝國CMS與PHPCMS對(duì)比(四):碎片功能分析

2011-10-08 17:21:04來源:作者:

前段時(shí)間,一位使用帝國CMS的朋友問我,帝國的碎片是什么意思,是做什么用的?我是這樣回答的:現(xiàn)在很多門戶網(wǎng)站的首頁的信息大部分不是自動(dòng)讀取的,而是編輯手動(dòng)添加或推薦的,每個(gè)編輯負(fù)責(zé)一個(gè)區(qū)塊,手動(dòng)推薦熱點(diǎn)

前段時(shí)間,一位使用帝國CMS的朋友問我,帝國的碎片是什么意思,是做什么用的?我是這樣回答的:現(xiàn)在很多門戶網(wǎng)站的首頁的信息大部分不是自動(dòng)讀取的,而是編輯手動(dòng)添加或推薦的,每個(gè)編輯負(fù)責(zé)一個(gè)區(qū)塊,手動(dòng)推薦熱點(diǎn)信息,分工負(fù)責(zé),現(xiàn)在的CMS中的所說有碎片即是這樣的區(qū)塊片段,每個(gè)編輯負(fù)責(zé)一塊碎片手動(dòng)的更新。

那么碎片應(yīng)該具備哪些功能呢?落葉認(rèn)為應(yīng)該具備如下功能:

1) 能夠選擇手動(dòng)格式化添加文章標(biāo)題及文章鏈接、摘要等信息(靜態(tài)碎片)

2) 能夠選擇使用標(biāo)簽自動(dòng)調(diào)用數(shù)據(jù)或者供推送數(shù)據(jù)(動(dòng)態(tài)碎片)

3) 能夠直接使用HTML添加數(shù)據(jù)(代碼碎片)

4) 碎片具有權(quán)限設(shè)置功能,不同的編輯只能修改具有權(quán)限的碎片(碎片編輯權(quán)限)

5) 碎片更新后能夠做到頁面不重新生成,內(nèi)容自動(dòng)更新(碎片更新)

6) 碎片信息調(diào)用靈活(碎片調(diào)用)

下面就逐點(diǎn)對(duì)比分析帝國CMS與PHPCMS的碎片功能:

1) 靜態(tài)碎片

帝國CMS和PHPCMS中都具有靜態(tài)碎片的功能,只是叫法不同。PHPCMS中稱作“格式化碎片”,即以表單的形式添加標(biāo)題、摘要、鏈接、縮略圖等信息。

\

帝國CMS中稱“靜態(tài)碎片”,和PHPCMS不同之處在于帝國的信息數(shù)據(jù)是單條添加,較之于PHPCMS,方便性稍微差一些,PHPCMS直接一次性填寫設(shè)定的N條信息后一次提交。

\

帝國單條信息添加的優(yōu)點(diǎn)是可以單獨(dú)設(shè)定每個(gè)標(biāo)題的屬性,實(shí)際門戶網(wǎng)站的“不規(guī)則新聞”功能,PHPCMS中雖然也可以通過改下方的單條信息模板來實(shí)際,但因?yàn)槭菙?shù)據(jù)循環(huán),統(tǒng)一操作,如果要像帝國這樣實(shí)現(xiàn)單條信息的個(gè)性化及不規(guī)則新聞,那需要作較多的邏輯判斷。

另外,帝國的單條信息的標(biāo)題、鏈鏈等信息可以通過點(diǎn)擊“通過信息ID獲取”,實(shí)際使用發(fā)現(xiàn),其實(shí)是個(gè)雞肋,因?yàn)辄c(diǎn)開后是要直接填寫欄目ID和文章 ID來獲取,去查看文章的欄目ID和文章ID再去填寫的這會(huì)兒功夫,還不如直接打開文章復(fù)制粘貼下來得快來得直接。PHPCMS中支持能通過關(guān)鍵詞搜索信息來添加,設(shè)計(jì)思路挺不錯(cuò)的,不過實(shí)際使用中結(jié)果不一定太理想,一般不怎么用,都是直接把要手動(dòng)推薦的信息,復(fù)制標(biāo)題、鏈接、摘要粘貼,上傳下縮略圖,然后保存。

2) 動(dòng)態(tài)碎片

以前在使用PHPCMS的碎片功能時(shí),落葉一直期待PHPCMS能夠?qū)崿F(xiàn)動(dòng)態(tài)碎片功能,即在PHPCMS的非格式化碎片中可以直接使用PHPCMS 的數(shù)據(jù)調(diào)用標(biāo)簽如TAG標(biāo)簽和GET標(biāo)簽,但實(shí)際由于PHPCMS的設(shè)計(jì)思路是碎片以靜態(tài)方式保存后引用,沒經(jīng)過PHPCMS的模板引擎處理,所以一直沒法實(shí)現(xiàn)這個(gè)期待。前段時(shí)間在測試帝國CMS的碎片功能時(shí),發(fā)現(xiàn)帝國CMS提供了動(dòng)態(tài)碎片功能,以為是可以在碎片中能通過內(nèi)置標(biāo)簽調(diào)用數(shù)據(jù),結(jié)果發(fā)現(xiàn),帝國 CMS的動(dòng)態(tài)標(biāo)簽居然是通過填寫欄目ID和文章ID來調(diào)用,雖然可以實(shí)現(xiàn)動(dòng)態(tài)信息的調(diào)用,但仔細(xì)想想,這樣有意義嗎?還是老話,找欄目ID和文章ID這會(huì)功夫,復(fù)制粘貼下不知快多少!

\

如果讓我來設(shè)計(jì)動(dòng)態(tài)碎片,那一定想辦法實(shí)現(xiàn)可在碎片中自由使用任何系統(tǒng)標(biāo)簽,退一步講,按照像帝國CMS這樣的思路,通過填寫欄目ID和文章ID來獲取,至少也加個(gè)“瀏覽”的按鈕,讓大家直接瀏覽或者通過關(guān)鍵詞搜索已發(fā)布過的信息的標(biāo)題,勾選后批量添加。

帝國CMS的這個(gè)動(dòng)態(tài)碎片功能如果不繼續(xù)改進(jìn)(仿照DZX的數(shù)據(jù)推送功能、或者DEDECMS專題中添加節(jié)點(diǎn)數(shù)據(jù)的操作),無疑是一個(gè)敗筆。

3) 代碼碎片

代碼碎片實(shí)際是提供一個(gè)文本域或者文本編輯器,可以讓站長直接粘貼編輯好的HTML代碼或者JS代碼來手動(dòng)添加內(nèi)容。

PHPCMS和帝國CMS中都提供了代碼碎片的功能,PHPCMS中稱作“非格式化碎片”,兩者功能一樣,只是PHPCMS中做的更簡潔一些,就一個(gè)FCK編輯器,然后默認(rèn)編輯模式為代碼模式即可,而帝國CMS中默認(rèn)只是一個(gè)textarea,得點(diǎn)擊可視化編輯才彈出編輯器界面,想不通帝國CMS為啥要這樣做,直接放個(gè)編輯器默認(rèn)為代碼模式不是方便多了。在代碼模式下添加HTML后,點(diǎn)到非代碼模式預(yù)覽下效果,然后保存不是很好?

另外,如果是代碼碎片中能支持調(diào)用系統(tǒng)標(biāo)簽,那將是多么完美,我在PHPCMS論壇看過很多人期待這個(gè)需求,不過目前還沒有被實(shí)現(xiàn)過。

4) 碎片編輯權(quán)限

門戶網(wǎng)站首頁不同區(qū)塊的編輯各司其職,維護(hù)自己管理的區(qū)塊的文章的推送,為了方便管理和考核,必然需要完善的編輯權(quán)限控制,這一點(diǎn),帝國CMS和PHPCMS的碎片功能在添加碎片時(shí)都有考慮到,并且提供了相應(yīng)的功能。

PHPCMS中則是通過角色來實(shí)現(xiàn)的,帝國CMS中則除了通過用戶組控制外,另外可以通過“部門”來控制,甚至細(xì)化到具體會(huì)員,這一點(diǎn)帝國CMS做的細(xì)致一些,不過,帝國CMS中的“部門”和PHPCMS的“角色”相當(dāng),實(shí)現(xiàn)二者的權(quán)限功能是相當(dāng)?shù),因(yàn)镻HPCMS中只要自定義個(gè)角色,然后把需要賦予權(quán)限的用戶添加到角色下,即可實(shí)現(xiàn)對(duì)用戶的細(xì)化。從現(xiàn)在主流權(quán)限控制系統(tǒng)RBAC來看,PHPCMS的設(shè)計(jì)更主流一些。

PHPCMS的碎片權(quán)限設(shè)置如下圖:

\

帝國CMS的碎片權(quán)限設(shè)置如下圖:

\

5) 碎片更新

對(duì)于碎片的更新,最好的預(yù)期是,碎片信息更新后,引用碎片的文件無需重新生成,即可自動(dòng)更新,不過,貌似如果生成靜態(tài)的頁面中調(diào)用碎片的,能實(shí)現(xiàn)這一需求的只有在PHPCMS中開啟SHTML才能實(shí)現(xiàn)。

PHPCMS中開啟SHTML支持,然后把文章生成.shtml擴(kuò)展名的文件后,所有碎片的引用方式都直接采用SSI指令引用(PHPCMS中的碎片是以HTML文件存儲(chǔ)的,如果不開啟SHTML支持,那么碎片靜態(tài)文件能過file_get_contents函數(shù)讀取整合到靜態(tài)文件中生成,如果開啟 SHTML,則使用SSI指令引用。)通過SSI指令引用的碎片HTML內(nèi)容更新后,SHTML頁面無需重新生成,其內(nèi)容也會(huì)自動(dòng)跟著更新,這點(diǎn)非常不錯(cuò)。

帝國CMS中的碎片信息是直接存儲(chǔ)在數(shù)據(jù)庫中的,使用標(biāo)簽讀取,沒有也不會(huì)有這樣的功能。

另外,PHPCMS中碎片信息的更新,可以是可視化的,在后臺(tái)模板可視化管理處,直接點(diǎn)擊碎片即可進(jìn)入進(jìn)行編輯。帝國CMS中碎片單條信息實(shí)際仍然是單條記錄,和普通文章的添加、編輯沒啥區(qū)別。

6) 碎片調(diào)用

PHPCMS中的碎片的調(diào)用是非常簡單的,在PHPCMS任何模板的任何位置,直接使用block函數(shù)調(diào)用即可,如<!--{block("testsp", 1)}-->即可調(diào)用名為testsp的碎片的整個(gè)信息。

至于帝國CMS中,碎片的調(diào)用,使用碎片標(biāo)簽[spinfo]碎片變量名,顯示條數(shù),標(biāo)題截取數(shù)[/spinfo]來實(shí)際,實(shí)際和其它文章數(shù)據(jù)的調(diào)用沒啥區(qū)別。

作者:落葉(t.qq.com/guohui) 網(wǎng)站:http://www.pmume.com

關(guān)鍵詞:帝國CMSPHPCMS

贊助商鏈接: