2004年5月25日 星期二

介給開放原始碼CMS(內容管理系統)與分享架站心得

時代變了,作個網站已經不是約五年前的土法鍊鋼,一頁一頁來設計。許多公司捨棄了以純設計為主軸的網站設計方式,改用了以資料庫、伺服器敘述語言(Server Script,例如PHP,ASP,JSP)為後台的網站,美工成了樣版(template)設計的一部份,而且加重了動態展示功能,例如Flash。個人網站也漸漸走向使用CMS的趨勢,方便作內容管理與上傳內容。廣義的CMS可以把forum, Blog, eCommerce等系統也包括進來。

開放原始碼且可以免費使用的CMS固然很多(開放原始碼不一定是免費),像PHPNUKE、XOOPS等,都是很知名的系統,選擇性很多,你可以參考http://www.opensourcecms.com/網站。當然要花大錢買的的CMS也不少(請向微軟等公司洽詢~"~)。Mambo是本人最近很看好的一套CMS,我參與了有關繁體中文的翻譯計劃。之前本人也花了很多的時間在PHPNUKE的架站上,對PHPNUKE是深入了解一翻。

www.opensourcecms.com的作者Calvin C. Sov把CMS分作了入口網站、網誌、電子商務(eCommerce)、群組軟體(Groupware)、論壇(Forums)、線上學習(e-Learing)或是以上各種分類的複合類型等這麼多的類型。這些都是視你要架設的網站類型來分,當然不同性質的網站最好採用專用的CMS會比較好。

我的採用CMS經驗如下,供作有興趣研究這一個領域的人參考:
1.別用沒什麼人在用的CMS:
純研究可以,用來架網站最好不要輕易嘗試,沒什麼用的程式,bug多且支援少,發生問題不知道要找誰來幫你?建議你可以採用
-入口網站:phpnuke,Xoops,mambo
-論壇:phpbb,Phorum
-電子商務:osCommerce, phpShop
-網誌:Movable Type
這些都是大牌子,就算功能不是最強最炫,也是保証用不死人,至少掛站有問題可以找到人醫。

2.亂裝元件(component),模組(module),樣版(template)會有不良後果:
基本的CMS程式架上去成功後,最迷人的就是有很多不同樣式的樣版、超炫功能的模組或元件可以讓你的網站看起很多樣化和多功能。本人之前架了一個網站(用phpnuke),光上面裝的模組大概就超過20個,從美妙的滑動選單到樂透開獎、星座解盤、Flash看版、聊天室、線上傳呼…應有儘有。後來的維護就是令人頭痛的問題。因為這些功能模組和一般的程式一樣,都有版本更新的問題,每個模組都可能內有不知名的錯誤、bug,如何妥善的管理這些元件、樣版、模組,是一大問題(小小廣告一下:mambo的管理介面真的作的很不錯…有用過的都說讚~)
建議還是別裝太多,選擇你要的功能或經營比較好的模組,除非你裝了以後有本事"乾淨地"移除,不然造成整個站不穩或掛站,重頭來一遍絕對很浪費時間。

3.語言是個大問題:
語言翻譯絕對有這個必要,但是翻的絕對沒有程式出得快。多翻翻找找前輩們在相關網站上分享的語言翻譯經驗,或遇過的問題解答,可以幫助你平順的架好站。當然多學一些架站的技巧或管理的技巧,以及多閱讀英文手冊,對你的幫助一定很大。

Some Standards about CMS

Standards(reposted from OSCOM)
WebDAV
WebDAV stands for "Web-based Distributed Authoring and Versioning". It is a set of extensions to the HTTP protocol which allows users to collaboratively edit and manage files on remote web servers.
RSS
RSS is a Web content syndication format.
ATOM
Atom is an XML-based file format intended to allow lists of information, known as "feeds", to be synchronised between publishers and consumers. Feeds are composed of a number of items, known as "entries", each with an extensible set of attached metadata. The primary use case that Atom addresses is for syndicating Web content such as Weblogs and news headlines to other Web sites and directly to consumers.
JSR-170
The API should be a standard, implementation independent, way to access content bi-directionally on a granular level within a content repository. A Content Repository is a high-level information management system that is a superset of traditional data repositories. A content repository implements "content services" such as: author based versioning, full textual searching, fine grained access control, content categorization and content event monitoring. It is these "content services" that differentiate a Content Repository from a Data Repository