成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

帝國、PHPCMS及織夢對比(一):自定義模型功能分析

2011-10-08 17:42:46來源:chinaz作者:落葉

寫在前面:本文為落葉原創帝國CMS、PHPCMS及DEDECMS對比系列文章之自定義模型功能對比分析,其它不同切入點的CMS對比分析文章將陸續發布。

寫在前面:本文為落葉原創帝國CMS、PHPCMS及DEDECMS對比系列文章之自定義模型功能對比分析,其它不同切入點的CMS對比分析文章將陸續發布。

早期的文章管理系統,數據表字段模型都會內置好,按自己的思路,把文章模型、信息模型、圖片模型都內置,然后用戶根據需要,在設置欄目時選擇不同的模型,實現不同的需求。然而這種內置模型字段的方式,不能很好的滿足站長的各種個性化需求,所以各種CMS都推出了自定義模型和自定義字段的功能。

對于PHP程序員來講,自定義模型實際是在數據庫中建立一個新的數據表,然后添加不同的字段來記錄不同的數據,自定義字段功能,即在原有數據表中添加新的字段,或者在附加表中添加新的字段,然后根據數據模型進行數據寫入、數據查詢讀取、數據在模板中的展示操作。而CMS的模型自定義功能,則是把這一系列操作內置,流程化,自動化,建立模型,選擇不同的字段類型建立字段,根據不同字段類型,自動生成后臺數據錄入界面和前臺數據展示頁面。站長不需要編程知識即可很方便的根據自己的需求,設計不同的數據模型,更加方便站長個性化建站。同時,懂PHP編程的站長,除了能夠很方便的建立各種模型外,省去了數據錄入和數據查詢展示的重復操作環節,專注于個性功能的開發,能夠更快更好的制作各種各樣的功能模塊。

前面部分說到了自定義模型的優勢,那本文下部分主要從自定義模型流程對比、自定義字段字段類型對比、自定義字段選項對比(主表副表、前臺投稿、設置權限等)三個方面。

詳細對比分析下帝國CMS、PHPCMS、DEDECMS,這三款CMS的優缺點。

1. 自定義模型流程對比

在CMS中自定義模型,我們一般最期望實現的兩點是1)在數據庫中建一個表,并且可自由設置表中有什么字段;2)建好字段后,后臺數據添加表單能自動生成,前臺數據展示直接能通過標簽調用,而不需要自己寫讀取數據的PHP代碼。

那么這三款CMS中是怎樣滿足我們的這兩點期望的呢?

按照帝國CMS的官方提示,帝國CMS自定義模型一般步驟為1)系統分析、2)建立數據表、3)建立字段、4)建立系統模型。

帝國自定義模型的創建步驟實際為先建立一個數據表,然后建立字段,每一個字段類據類型等作詳細設置后,再整體控制各個字段的用途及前臺后臺數據錄入界面的格式即建立系模型。建立系統模型的過程實際是對數據字段在模型中所扮演的角色和權限的分配過程,如是否作為錄入項、是否作為投稿項、是否可增加、是否可修改、是否作為結合項等。

\

按帝國的思維,建表和建字段只是完成了建數據庫的操作,而系統模型建立的過程則為規劃數據庫如何使用的過程。

PHPCMS中添加自定義模型只有兩步,先建立模型,然后添加字段。在添加模型的過程中不僅完成了一般意義上的建數據表的工作,同時,也完成對模型的一些初始化設置,如模型中的數據是否生成靜態,欄目頁、列表頁、內容頁的模板及URL規則等。

添加完模型后,會自動生成一部分字段,可對這些字段作修改或刪除處理,同時可以自由增加字段。

PHPCMS中自定義模型建立字段時除了選擇封裝好的字段類型外,也整合了對字段屬性的設置,如是否在前臺投稿中顯示、是否作為標簽默認讀取字段、是否作為標簽調用排序字段等。

\

DEDECMS中自定義模型建立亦分為兩步完成,建數據表作初始化設置然后添加字段。添加模型時可選擇模型是自動模型、系統模型還是獨立模型。獨立模型可突破原來的主表+副表的模式,方便小數據量的靈活處理。

\

從三款CMS的自定義模型流程對比來看,帝國CMS的屬性設置相對更為細致但似乎簡潔性不夠,很多描述過于專業或者不夠明確,站長朋友們需要看較多幫助文檔才能了解到每項的意思,而PHPCMS和DEDECMS中則相對簡潔,一目了然知道每一項的涵義;PHPCMS和DEDECMS在建立模型表的同時完成了對模型的初始化設置,整個設置是針對整個模型的,與具體字段無關,屬全局性設置,而帝國CMS中模型的設置則是整合了對字段的整體操作,在建好字段之后,細化到對字段的細節控制,屬“微觀調控”。

帝國CMS中能夠單獨設置字段的前臺后臺展示模板,相對更為靈活些; PHPCMS中則由于字段類型是以組件形式封裝的,前臺后臺數據錄入界面自動生成,簡便,但在某些時候需要自定義部分字段的表單HTML時只有在模板中使用邏輯判斷才能實現,靈活性稍缺乏。DEDECMS模型設置和PHPCMS類似,DEDECMS這塊的優勢在于可以選擇數據模型是主表+副表的模式還是獨立表模式,并且可以自由設定前臺后臺的數據處理PHP文件,方便二次開發。

按我的經驗來看,帝國CMS這塊的設置雖然很細致,但實際把問題復雜化了,據觀察,帝國CMS的用戶自定義模型的深度用戶并不多。實際按照 PHPCMS和DEDECMS的思路,建模型數據表的同時,對模型作一部分全局設置,然后單個字段中根據不同字段類型及不同需求作細節設置,這樣的流程更直觀更方便。

另外,PHPCMS中自定義模型后可直接預覽模型的數據錄入界面,方便查看字段設置的效果,這點非常方便。

所以,從自定義模型細節易用性對比來看:DEDECMS>PHPCMS>帝國CMS。

2.字段類型對比:

CMS中自定義字段有一個很好的優點就是都封裝好了一些常見的字段類型,建立字段的同時,直接設置好了字段對應的表現形式,選擇不同的字段類型,在會員中心投稿表單界面、后臺數據錄入界面及前臺數據展示界面中都會有所不同,并且是自動呈現。舉個例子,如果是PHP程序員需要實現對文章內容的存儲,除了需要在數據庫中添加一個字段外,還需要在數據錄入表單中添加一個textarea,同時還要引用一些編輯器如fckeditor等。過程比較費事,并且存在許多重復性勞動。而如果在PHPCMS或者帝國CMS中實現這一需求,則只需要在建立字段時選擇“編輯器”字段類型,在DEDECMS中也類似只需要選擇“HTML文本”類型的字段即可。因為CMS的字段類型都將各種不同的字段進行了封裝,添加字段時直接選擇,然后自動生成的數據錄入界面中和前臺數據展示界面中,程序都會根據字段類型作一些處理,然后自動輸出。(PHPCMS中生成表單界面時會調用input_form相關的類根據字段類型進行處理,在輸出數據前,會調用output_form相關的類根據不同字段類型對數據進行處理)。

帝國CMS的字段類型
PHCMS的字段類型
DEDECMS的字段類型
單行文本框(text)
密碼框(password)
下拉框(select)
單選框(radio)
復選框(checkbox)
多行文本框(textarea)
編輯器(editor)
圖片(img)
FLASH文件(flash)
文件(file)
日期(date)
顏色(color)
選擇外表關聯字段(linkfield)
下拉外表關聯字段(linkfieldselect)
單行文本
多行文本
選項
數字
編輯器
日期和時間
顏色和字型
圖片
多圖片
文件
鏡像下載
多文件上傳
欄目
類別
地區
標題
作者
來源
關鍵詞
會員組
會員ID
推薦位
模板
轉向鏈接
分頁選擇
視頻
聯動菜單
單行文本(varchar)
單行文本(char)
多行文本
HTML文本
文本保存HTML數據
整數類型
小數類型
時間類型
圖片
圖片(僅網址)
多媒體文件
附件類型
使用option下拉框
使用radio選項卡
Checkbox多選框
聯動類型

從上表可見PHPCMS中字段類型的的豐富程度和實用性是明顯優于帝國CMS和DEDECMS的。DEDECMS字段類型稍多于帝國CMS。

即:PHPCMS >DEDECMS>帝國CMS。

3.自定義字段屬性選項對比:

有些時候設置的一些字段,我們希望只有管理員才能設置該字段的值;有些時候,添加的一些字段,我們希望能夠方便和標題摘要一起在文章列表中調用;有些時候,添加的一些字段,我們希望這個字段添加后不能再被修改;有時些時候,添加的一些字段,我們希望實現只在后臺數據錄入界面中顯示,而在前臺投稿中不顯示……這時候,靈活的字段屬性選項,顯得尤為重要。

那么這三款CMS中的字段屬性有哪些差異?哪個最能滿足用戶的需求呢?

1)自定義字段是否可選擇是否存在主表還是副表?

PHPCMS2008和DEDECMS的自定義字段只能添加到副表中,帝國CMS自定義字段則可選擇是添加在主表中還是副表中,這樣的好處在于,自定義字段可以方便作為數據調用條件和查詢條件和在文章列表中調用,而如果單純只加在副表中,一旦涉及到數據聯合查詢,效率會低很多,并且即使是簡單的標題+摘要+自定義字段顯示的文章列表中都非得多表聯合查詢,人為增加SQL查詢復雜度,降低效率。很典型的問題是在涉及到聯動篩選的情況時,自定義字段如果不能選擇存儲在主表中,會人為制造非常大的麻煩。

\

如上圖所示的,聯動篩選字段(帝國CMS和DEDECMS中稱作結合項),如果是想要用PHPCMS2008和帝國CMS來自定義,售價、面積、戶型等自下義字段,只能添加在副表中,結果是非常痛苦的,每個條件的查詢都要主表和副表同時查詢,并且查詢條件分期在主表中和副表中時,要同時滿足條件,非得join查詢。 如果涉及排序等,更是頭痛,反正是人為自找麻煩。如果能選擇直接把字段字義表主表中,這樣,這類數據量存儲不大的字段,不會明顯增加主表的負擔,但查詢和讀取都直接是單表操作,非常方便。帝國CMS中這點做的比較不錯,并且有提供了單獨的結合項功能。DEDECMS中貌似也有結合項功能,適用于多條件篩選的情況。

所以,這一點,帝國CMS>DEDECMS>PHPCMS。

2)字段的權限設置

有些字段,只希望在管理員或者編輯人員在編輯信息時才能設置,普通用戶不給設置權限,這就需要給自定義字段一個完整的權限系統。這一點PHPCMS 中做的非常不錯,可以直接能過勾選“不允許設置該字段值的會員組”的選項來實現。帝國CMS中最后一步“系統模型建立”中“可增加”、“可修改”這幾項似乎有權限設置的影子,只是實現了部分權限功能,而DEDECMS中則沒有看到明確的字段權限設置選項。

所以,這一點PHPCMS>帝國CMS>DEDECMS。

3)不在前臺投稿中顯示

有些時候設置某些字段,雖然普通會員也可以有給他賦值的權限,但是不需要或者不想在前臺投稿中顯示(如摘要等,有時候想簡單點,只讓用戶發個標題和內容),所以很需要實現某個自定義字段只在后臺編輯時可以填寫,而在前臺投稿界面中不自動顯示。關于這點,在PHPCMS中只需設置“是否在前臺投稿中顯示”項為否即可,DEDECMS中字段選項中“前臺參數”項中的“前臺投稿及采集規則禁用本字段”亦實現了這一需求,至于帝國CMS中,可以通過系統模型設置是否為錄入項實現,但似乎不夠直觀。

有時候,在使用PHPCMS自定義字段時,不希望字段在前臺投稿中顯示的另一個原因是,想對添加的一部分字段的表單樣式作單獨的修改或者作一些JS 處理,PHPCMS內置的字段樣式不太夠用或者不太方便,所以在設置字段時選擇不在前臺投稿中顯示,然后在模板中按需求手動添加這個字段的表單項,這一點在DEDECMS中有自定義表單HTML項,不需要像PHPCMS中這樣變相實現字段HTML項的定義,帝國CMS中添加自段時有提供定義前臺后臺錄入數據表單HTML的設置項,但他同時寫出了提示“增加字段時請留空”,這個做法不太理解,不過,他在進行系統模型定義的最后一步可以統一設置每個字段的前后臺數據錄入界面表單HTML。不過,DEDECMS和帝國CMS中的字兩項設置對普通新手用戶可能反而帶來疑惑,對熟悉二次開發的倒是挺方便的。

從這個小點來看,普通用戶PHPCMS>DEDECMS>帝國CMS,二次開發DEDECMS>帝國CMS>PHPCMS。

關于帝國CMS、PHPCMS、DEDECMS這三款CMS自定義模型功能,實際還有很多值得對比分析的地方,都各有優缺點,實現應用中總會有感覺很爽的地方,同時也會有很糾結的地方,在這些方面我是深有感觸的。

當然,本文并不在絕對的得出哪款CMS更好,哪款CMS不好的結論,只是根據自己實際使用的感觸作一些簡單的對比分析,上面對比的誰優于誰也只是基于我個人的感受,具體不同層次的用戶依個人習慣可能感受不同,希望能給朋友們一些參考。

系列相關文章:

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

贊助商鏈接:

主站蜘蛛池模板: 呼和浩特市| 洞头县| 池州市| 馆陶县| 林州市| 简阳市| 寿阳县| 九龙坡区| 昌都县| 乌拉特前旗| 宁波市| 新津县| 湖南省| 翁源县| 长泰县| 鄂尔多斯市| 安宁市| 循化| 汉中市| 祁连县| 化隆| 搜索| 武鸣县| 忻城县| 襄城县| 洞头县| 和政县| 庄浪县| 平顺县| 年辖:市辖区| 平阴县| 凉城县| 象州县| 凤山市| 舒兰市| 琼结县| 龙门县| 罗平县| 竹溪县| 汨罗市| 涞水县|