寫在前面:本文為落葉原創(chuàng)帝國CMS、PHPCMS及DEDECMS對比系列文章之自定義模型功能對比分析,其它不同切入點的CMS對比分析文章將陸續(xù)發(fā)布。
早期的文章管理系統(tǒng),數(shù)據(jù)表字段模型都會內(nèi)置好,按自己的思路,把文章模型、信息模型、圖片模型都內(nèi)置,然后用戶根據(jù)需要,在設置欄目時選擇不同的模型,實現(xiàn)不同的需求。然而這種內(nèi)置模型字段的方式,不能很好的滿足站長的各種個性化需求,所以各種CMS都推出了自定義模型和自定義字段的功能。
對于PHP程序員來講,自定義模型實際是在數(shù)據(jù)庫中建立一個新的數(shù)據(jù)表,然后添加不同的字段來記錄不同的數(shù)據(jù),自定義字段功能,即在原有數(shù)據(jù)表中添加新的字段,或者在附加表中添加新的字段,然后根據(jù)數(shù)據(jù)模型進行數(shù)據(jù)寫入、數(shù)據(jù)查詢讀取、數(shù)據(jù)在模板中的展示操作。而CMS的模型自定義功能,則是把這一系列操作內(nèi)置,流程化,自動化,建立模型,選擇不同的字段類型建立字段,根據(jù)不同字段類型,自動生成后臺數(shù)據(jù)錄入界面和前臺數(shù)據(jù)展示頁面。站長不需要編程知識即可很方便的根據(jù)自己的需求,設計不同的數(shù)據(jù)模型,更加方便站長個性化建站。同時,懂PHP編程的站長,除了能夠很方便的建立各種模型外,省去了數(shù)據(jù)錄入和數(shù)據(jù)查詢展示的重復操作環(huán)節(jié),專注于個性功能的開發(fā),能夠更快更好的制作各種各樣的功能模塊。
前面部分說到了自定義模型的優(yōu)勢,那本文下部分主要從自定義模型流程對比、自定義字段字段類型對比、自定義字段選項對比(主表副表、前臺投稿、設置權限等)三個方面。
詳細對比分析下帝國CMS、PHPCMS、DEDECMS,這三款CMS的優(yōu)缺點。
1. 自定義模型流程對比
在CMS中自定義模型,我們一般最期望實現(xiàn)的兩點是1)在數(shù)據(jù)庫中建一個表,并且可自由設置表中有什么字段;2)建好字段后,后臺數(shù)據(jù)添加表單能自動生成,前臺數(shù)據(jù)展示直接能通過標簽調(diào)用,而不需要自己寫讀取數(shù)據(jù)的PHP代碼。
那么這三款CMS中是怎樣滿足我們的這兩點期望的呢?
按照帝國CMS的官方提示,帝國CMS自定義模型一般步驟為1)系統(tǒng)分析、2)建立數(shù)據(jù)表、3)建立字段、4)建立系統(tǒng)模型。
帝國自定義模型的創(chuàng)建步驟實際為先建立一個數(shù)據(jù)表,然后建立字段,每一個字段類據(jù)類型等作詳細設置后,再整體控制各個字段的用途及前臺后臺數(shù)據(jù)錄入界面的格式即建立系模型。建立系統(tǒng)模型的過程實際是對數(shù)據(jù)字段在模型中所扮演的角色和權限的分配過程,如是否作為錄入項、是否作為投稿項、是否可增加、是否可修改、是否作為結合項等。
按帝國的思維,建表和建字段只是完成了建數(shù)據(jù)庫的操作,而系統(tǒng)模型建立的過程則為規(guī)劃數(shù)據(jù)庫如何使用的過程。
PHPCMS中添加自定義模型只有兩步,先建立模型,然后添加字段。在添加模型的過程中不僅完成了一般意義上的建數(shù)據(jù)表的工作,同時,也完成對模型的一些初始化設置,如模型中的數(shù)據(jù)是否生成靜態(tài),欄目頁、列表頁、內(nèi)容頁的模板及URL規(guī)則等。
添加完模型后,會自動生成一部分字段,可對這些字段作修改或刪除處理,同時可以自由增加字段。
PHPCMS中自定義模型建立字段時除了選擇封裝好的字段類型外,也整合了對字段屬性的設置,如是否在前臺投稿中顯示、是否作為標簽默認讀取字段、是否作為標簽調(diào)用排序字段等。
DEDECMS中自定義模型建立亦分為兩步完成,建數(shù)據(jù)表作初始化設置然后添加字段。添加模型時可選擇模型是自動模型、系統(tǒng)模型還是獨立模型。獨立模型可突破原來的主表+副表的模式,方便小數(shù)據(jù)量的靈活處理。
從三款CMS的自定義模型流程對比來看,帝國CMS的屬性設置相對更為細致但似乎簡潔性不夠,很多描述過于專業(yè)或者不夠明確,站長朋友們需要看較多幫助文檔才能了解到每項的意思,而PHPCMS和DEDECMS中則相對簡潔,一目了然知道每一項的涵義;PHPCMS和DEDECMS在建立模型表的同時完成了對模型的初始化設置,整個設置是針對整個模型的,與具體字段無關,屬全局性設置,而帝國CMS中模型的設置則是整合了對字段的整體操作,在建好字段之后,細化到對字段的細節(jié)控制,屬“微觀調(diào)控”。
帝國CMS中能夠單獨設置字段的前臺后臺展示模板,相對更為靈活些; PHPCMS中則由于字段類型是以組件形式封裝的,前臺后臺數(shù)據(jù)錄入界面自動生成,簡便,但在某些時候需要自定義部分字段的表單HTML時只有在模板中使用邏輯判斷才能實現(xiàn),靈活性稍缺乏。DEDECMS模型設置和PHPCMS類似,DEDECMS這塊的優(yōu)勢在于可以選擇數(shù)據(jù)模型是主表+副表的模式還是獨立表模式,并且可以自由設定前臺后臺的數(shù)據(jù)處理PHP文件,方便二次開發(fā)。
按我的經(jīng)驗來看,帝國CMS這塊的設置雖然很細致,但實際把問題復雜化了,據(jù)觀察,帝國CMS的用戶自定義模型的深度用戶并不多。實際按照 PHPCMS和DEDECMS的思路,建模型數(shù)據(jù)表的同時,對模型作一部分全局設置,然后單個字段中根據(jù)不同字段類型及不同需求作細節(jié)設置,這樣的流程更直觀更方便。
另外,PHPCMS中自定義模型后可直接預覽模型的數(shù)據(jù)錄入界面,方便查看字段設置的效果,這點非常方便。
所以,從自定義模型細節(jié)易用性對比來看:DEDECMS>PHPCMS>帝國CMS。
2.字段類型對比:
CMS中自定義字段有一個很好的優(yōu)點就是都封裝好了一些常見的字段類型,建立字段的同時,直接設置好了字段對應的表現(xiàn)形式,選擇不同的字段類型,在會員中心投稿表單界面、后臺數(shù)據(jù)錄入界面及前臺數(shù)據(jù)展示界面中都會有所不同,并且是自動呈現(xiàn)。舉個例子,如果是PHP程序員需要實現(xiàn)對文章內(nèi)容的存儲,除了需要在數(shù)據(jù)庫中添加一個字段外,還需要在數(shù)據(jù)錄入表單中添加一個textarea,同時還要引用一些編輯器如fckeditor等。過程比較費事,并且存在許多重復性勞動。而如果在PHPCMS或者帝國CMS中實現(xiàn)這一需求,則只需要在建立字段時選擇“編輯器”字段類型,在DEDECMS中也類似只需要選擇“HTML文本”類型的字段即可。因為CMS的字段類型都將各種不同的字段進行了封裝,添加字段時直接選擇,然后自動生成的數(shù)據(jù)錄入界面中和前臺數(shù)據(jù)展示界面中,程序都會根據(jù)字段類型作一些處理,然后自動輸出。(PHPCMS中生成表單界面時會調(diào)用input_form相關的類根據(jù)字段類型進行處理,在輸出數(shù)據(jù)前,會調(diào)用output_form相關的類根據(jù)不同字段類型對數(shù)據(jù)進行處理)。
帝國CMS的字段類型
|
PHCMS的字段類型
|
DEDECMS的字段類型
|
單行文本框(text)
密碼框(password)
下拉框(select)
單選框(radio)
復選框(checkbox)
多行文本框(textarea)
編輯器(editor)
圖片(img)
FLASH文件(flash)
文件(file)
日期(date)
顏色(color)
選擇外表關聯(lián)字段(linkfield)
下拉外表關聯(lián)字段(linkfieldselect)
|
單行文本
多行文本
選項
數(shù)字
編輯器
日期和時間
顏色和字型
圖片
多圖片
文件
鏡像下載
多文件上傳
欄目
類別
地區(qū)
標題
作者
來源
關鍵詞
會員組
會員ID
推薦位
模板
轉向鏈接
分頁選擇
視頻
聯(lián)動菜單
|
單行文本(varchar)
單行文本(char)
多行文本
HTML文本
文本保存HTML數(shù)據(jù)
整數(shù)類型
小數(shù)類型
時間類型
圖片
圖片(僅網(wǎng)址)
多媒體文件
附件類型
使用option下拉框
使用radio選項卡
Checkbox多選框
聯(lián)動類型
|
從上表可見PHPCMS中字段類型的的豐富程度和實用性是明顯優(yōu)于帝國CMS和DEDECMS的。DEDECMS字段類型稍多于帝國CMS。
即:PHPCMS >DEDECMS>帝國CMS。
3.自定義字段屬性選項對比:
有些時候設置的一些字段,我們希望只有管理員才能設置該字段的值;有些時候,添加的一些字段,我們希望能夠方便和標題摘要一起在文章列表中調(diào)用;有些時候,添加的一些字段,我們希望這個字段添加后不能再被修改;有時些時候,添加的一些字段,我們希望實現(xiàn)只在后臺數(shù)據(jù)錄入界面中顯示,而在前臺投稿中不顯示……這時候,靈活的字段屬性選項,顯得尤為重要。
那么這三款CMS中的字段屬性有哪些差異?哪個最能滿足用戶的需求呢?
1)自定義字段是否可選擇是否存在主表還是副表?
PHPCMS2008和DEDECMS的自定義字段只能添加到副表中,帝國CMS自定義字段則可選擇是添加在主表中還是副表中,這樣的好處在于,自定義字段可以方便作為數(shù)據(jù)調(diào)用條件和查詢條件和在文章列表中調(diào)用,而如果單純只加在副表中,一旦涉及到數(shù)據(jù)聯(lián)合查詢,效率會低很多,并且即使是簡單的標題+摘要+自定義字段顯示的文章列表中都非得多表聯(lián)合查詢,人為增加SQL查詢復雜度,降低效率。很典型的問題是在涉及到聯(lián)動篩選的情況時,自定義字段如果不能選擇存儲在主表中,會人為制造非常大的麻煩。
如上圖所示的,聯(lián)動篩選字段(帝國CMS和DEDECMS中稱作結合項),如果是想要用PHPCMS2008和帝國CMS來自定義,售價、面積、戶型等自下義字段,只能添加在副表中,結果是非常痛苦的,每個條件的查詢都要主表和副表同時查詢,并且查詢條件分期在主表中和副表中時,要同時滿足條件,非得join查詢。 如果涉及排序等,更是頭痛,反正是人為自找麻煩。如果能選擇直接把字段字義表主表中,這樣,這類數(shù)據(jù)量存儲不大的字段,不會明顯增加主表的負擔,但查詢和讀取都直接是單表操作,非常方便。帝國CMS中這點做的比較不錯,并且有提供了單獨的結合項功能。DEDECMS中貌似也有結合項功能,適用于多條件篩選的情況。
所以,這一點,帝國CMS>DEDECMS>PHPCMS。
2)字段的權限設置
有些字段,只希望在管理員或者編輯人員在編輯信息時才能設置,普通用戶不給設置權限,這就需要給自定義字段一個完整的權限系統(tǒng)。這一點PHPCMS 中做的非常不錯,可以直接能過勾選“不允許設置該字段值的會員組”的選項來實現(xiàn)。帝國CMS中最后一步“系統(tǒng)模型建立”中“可增加”、“可修改”這幾項似乎有權限設置的影子,只是實現(xiàn)了部分權限功能,而DEDECMS中則沒有看到明確的字段權限設置選項。
所以,這一點PHPCMS>帝國CMS>DEDECMS。
3)不在前臺投稿中顯示
有些時候設置某些字段,雖然普通會員也可以有給他賦值的權限,但是不需要或者不想在前臺投稿中顯示(如摘要等,有時候想簡單點,只讓用戶發(fā)個標題和內(nèi)容),所以很需要實現(xiàn)某個自定義字段只在后臺編輯時可以填寫,而在前臺投稿界面中不自動顯示。關于這點,在PHPCMS中只需設置“是否在前臺投稿中顯示”項為否即可,DEDECMS中字段選項中“前臺參數(shù)”項中的“前臺投稿及采集規(guī)則禁用本字段”亦實現(xiàn)了這一需求,至于帝國CMS中,可以通過系統(tǒng)模型設置是否為錄入項實現(xiàn),但似乎不夠直觀。
有時候,在使用PHPCMS自定義字段時,不希望字段在前臺投稿中顯示的另一個原因是,想對添加的一部分字段的表單樣式作單獨的修改或者作一些JS 處理,PHPCMS內(nèi)置的字段樣式不太夠用或者不太方便,所以在設置字段時選擇不在前臺投稿中顯示,然后在模板中按需求手動添加這個字段的表單項,這一點在DEDECMS中有自定義表單HTML項,不需要像PHPCMS中這樣變相實現(xiàn)字段HTML項的定義,帝國CMS中添加自段時有提供定義前臺后臺錄入數(shù)據(jù)表單HTML的設置項,但他同時寫出了提示“增加字段時請留空”,這個做法不太理解,不過,他在進行系統(tǒng)模型定義的最后一步可以統(tǒng)一設置每個字段的前后臺數(shù)據(jù)錄入界面表單HTML。不過,DEDECMS和帝國CMS中的字兩項設置對普通新手用戶可能反而帶來疑惑,對熟悉二次開發(fā)的倒是挺方便的。
從這個小點來看,普通用戶PHPCMS>DEDECMS>帝國CMS,二次開發(fā)DEDECMS>帝國CMS>PHPCMS。
關于帝國CMS、PHPCMS、DEDECMS這三款CMS自定義模型功能,實際還有很多值得對比分析的地方,都各有優(yōu)缺點,實現(xiàn)應用中總會有感覺很爽的地方,同時也會有很糾結的地方,在這些方面我是深有感觸的。
當然,本文并不在絕對的得出哪款CMS更好,哪款CMS不好的結論,只是根據(jù)自己實際使用的感觸作一些簡單的對比分析,上面對比的誰優(yōu)于誰也只是基于我個人的感受,具體不同層次的用戶依個人習慣可能感受不同,希望能給朋友們一些參考。
系列相關文章:
- 帝國、PHPCMS及織夢對比(一):自定義模型功能分析
- 帝國、PHPCMS及織夢對比(二):支持SQL調(diào)用的標簽
- 帝國、PHPCMS及織夢對比(三):自定義URL規(guī)則
- 帝國CMS與PHPCMS對比(四):碎片功能分析
- 帝國、PHPCMS及織夢對比(五):標簽解析方式分析
- 帝國、PHPCMS及織夢對比(六):專題功能對比分析
- 帝國、PHPCMS及織夢對比(七)之自定義表單功能分析
- 帝國、PHPCMS及織夢對比(八):SEO輔助功能及個性化調(diào)用分析
- 帝國、PHPCMS及織夢對比(九):關聯(lián)類別屬性
- 帝國、PHPCMS及織夢對比(十):推薦位功能
- 帝國、PHPCMS及織夢對比(十一):采集功能
- 帝國、PHPCMS及織夢對比(十二):PHPCMS低級BUG問題分析
作者:落葉(t.qq.com/guohui/) 網(wǎng)站:http://www.pmume.com 。