為了架設(shè)“數(shù)字圖書館前沿問題高級研討班”的專屬網(wǎng)站,下載并測試了不少內(nèi)容管理和Weblog方面的軟件代碼。內(nèi)容管理系統(tǒng)有Drupal、Tikiwiki、PostNuke、Xoops、Mambo等,Weblog有WordPress、MT、LBS等。
Drupal系統(tǒng)功能多,可實現(xiàn)文章、論壇、Blog等應(yīng)用,有很多第三方插件擴展使用;界面簡潔。Drupal令人嘆服的是數(shù)據(jù)庫設(shè)計非常精簡,20多個表就實現(xiàn)很多功能,通過嚴格的數(shù)據(jù)庫編碼,使多個功能共用幾張表,在數(shù)據(jù)庫設(shè)計精簡方面堪稱一流。但這意味著額外的代價:源碼難讀,系統(tǒng)功能擴展困難,系統(tǒng)維護復雜,并可能會降低系統(tǒng)運行效率。漢化支持方面,國內(nèi)有海微在做漢化工作www.hiweed.com,漢化程度不高。
在SourceFforge.net狂搜,搜到很多系統(tǒng),如eGroupware、 phpWebSite、PHPX 等等,感覺都不錯,只是沒有漢化。順便提一下,sourceforge.net也許是全球最大的開放源碼交流網(wǎng)站,很多優(yōu)秀的開放源碼項目都在這里,如phpMyAdmin、SquirrelMail等,還有許多諸如ERP、CRM的項目,真是應(yīng)用盡有。
網(wǎng)絡(luò)圖苑是用tikiwiki架設(shè)的,網(wǎng)友一問在漢化方面下了很多功夫,已經(jīng)相當不錯。Tikiwiki是非常優(yōu)秀的網(wǎng)站內(nèi)容管理系統(tǒng),基于PHP+ADOdb+Smarty等技術(shù)構(gòu)建,功能非常齊全,主要特點:
1、功能強大,涵蓋文章、論壇、分類目錄、blog、圖庫、文件下載、在線調(diào)查、Wiki等。
2、用戶權(quán)限管理功能易用,可以很方便地定制用戶權(quán)限。
3、管理后臺和用戶界面相結(jié)合,通過用戶權(quán)限控制界面顯示。
4、界面可分割成上中下、左中右區(qū)域,非常結(jié)構(gòu)化。
5、包含許多實用模塊,如菜單、登錄、搜索、在線調(diào)查、最新發(fā)表文章等等,可靈活定制顯示在左右界面區(qū)域。
6、界面簡潔,支持界面模板換膚。
主要缺點:
1、頁面生成速度有點慢。
2、一個功能只有一個主菜單,不能設(shè)置成多個菜單,比如文章管理就只有一個“文章”菜單項,不能分開設(shè)置成“公告”、“新聞”等,而是所有文章都顯示在一塊。這樣就限制了網(wǎng)站的靈活性,因為網(wǎng)站有很多類型的“文章”需要分開設(shè)置。
3、用戶菜單和管理菜單混合在一起,通過用戶權(quán)限控制菜單顯示,菜單需要展開才能使用,比較復雜,也不直觀。
關(guān)于smarty技術(shù)。它使數(shù)據(jù)庫開發(fā)和界面設(shè)計分開,確實達到簡化數(shù)據(jù)庫編碼的效果,但卻增加一個中間層,使得界面的設(shè)計難度增加了。引入smarty技術(shù)后,每個小功能的實現(xiàn),都必須有一個數(shù)據(jù)庫描述文件,一個界面文件,和一個數(shù)據(jù)庫和界面的連接文件,且被放在不同目錄,開發(fā)不易上手。另外由于smarty是動態(tài)生成界面文件的,速度有些慢,需要cache緩存來提高速度,也就是把首次生成的界面文件放在cache目錄中,這些文件有一定的生命周期,到期后重新再生成。第一次打開界面時有點慢,以后就快多了。不過cache緩存有個后遺癥,有時內(nèi)容更新了,緩存卻沒有更新,用戶就不能及時看到最新的頁面,暈!
另外,Tikiwiki的功能設(shè)計不是真正意義上的結(jié)構(gòu)化設(shè)計,有點象一鍋大雜燴,所有功能模塊的初始化代碼堆在一起,不管你有沒有用到,所有功能都被初始化,系統(tǒng)速度怎能不慢!核心代碼中也混雜著多種功能模塊的代碼,使得核心代碼亂七八糟,可讀性太差。
PhpNuke的官方網(wǎng)站是www.phpnuke.org,已經(jīng)發(fā)布7.9版本。PhpNuke據(jù)稱是目前使用最多的內(nèi)容管理系統(tǒng),已經(jīng)有5-6年的歷史了!中文漢化支持也很及時。PhpNuke的界面較土。一個好的界面并不要求充斥大量的圖片和顏色,關(guān)鍵是布局要合理,顏色搭配要協(xié)調(diào),而這兩點PhpNuke做得并不好。管理后臺功能強大,有文章、下載、在線調(diào)查、FAQ、用戶管理、權(quán)限管理等等,最重要的是支持第三方插件的安裝和卸載,可以隨意擴展系統(tǒng)的功能!這點比Tikiwiki強多了。經(jīng)過多年的發(fā)展,PhpNuke社區(qū)的人氣很旺,支持它的插件Addon、區(qū)塊Block和界面風格Theme很多。
試用總結(jié):
1、大凡web內(nèi)容管理系統(tǒng)都有一個核心系統(tǒng),實現(xiàn)常用功能如文章管理、分類管理、用戶管理、權(quán)限管理等。
2、提供系統(tǒng)的功能擴展機制,方便第三方開發(fā)和使用插件。
3、提供界面布局的控制機制,把界面布局切成上中下、左中右等區(qū)塊,讓用戶能把自定義的功能放到這些區(qū)塊上。
4、提供界面風格的控制機制,讓用戶開發(fā)和使用各種風格各異的界面風格,隨心所欲地換膚。
評價一個內(nèi)容管理系統(tǒng)是否優(yōu)秀,先要看它有沒有上述的4點特征,然后看運行效率如何,再看易用性如何,是否易于用戶使用和開發(fā)人員擴展新功能。當然還要看它是否支持多語言,尤其是有沒有漢化包,或是否容易漢化。
根據(jù)上述原則,Tikiwiki的第1、2條是合并在一起的,難以擴展,不過用戶管理和權(quán)限管理功能比較強大,第3、4條做得非常棒,易于使用。PhpNuke第2條做得很好,但第1條用戶管理、權(quán)限管理和第3、4條做得不是很好,易用性較差,界面很土。
再來,PostNuke,官方網(wǎng)站www.postnuke.org,它是PhpNuke的簡化版和美化版,內(nèi)核作了一些簡化,對第3、4條做了一些簡化和美化處理,不過和Tikiwiki相比還是略遜一籌。版本升級和漢化方面較薄弱。漢化發(fā)布參見www.chinammgg.com。
Xoops中文版,界面布局和風格一般,但其源碼有代表性,值得參考。
Sourceforge.net中已經(jīng)有Tikipro項目,該項目的發(fā)起者們發(fā)現(xiàn)Tikiwiki存在的弊端,正在著手進行改進,還專門建個網(wǎng)站www.tikipro.org來進行開發(fā)的溝通和交流。Tikipro引入phpgacl來增強權(quán)限控制和管理。phpgacl是什么東東?它是用php+ADODB+Smarty開發(fā)的通用權(quán)限管理模塊,設(shè)計思路非常好,能實現(xiàn)非常復雜的權(quán)限控制,提供很多實用的API函數(shù),方便整合進已有的web內(nèi)容管理系統(tǒng)中。
phpgacl僅有的兩個用戶中,排在第一的是Mambo。
Mambo,中文意思為曼波音樂(源于古巴黑人音樂),是功能最強大的開放源碼的內(nèi)容管理系統(tǒng)之一。在2004年4月20日倫敦舉行的Linux用戶和開發(fā)員大會上,Mambo從眾多優(yōu)秀的開放源碼系統(tǒng)中脫穎而出,獲得2004年度最佳Linux開放源碼系統(tǒng)獎項,和它同場競技的有KDE、Firebird SQL以及eGroupware等。
Mambo基于php+mysql技術(shù)開發(fā),具有易于安裝、管理簡單、可靠性高等特點。它分為核心系統(tǒng)(core)、組件(component)、模塊(module)、界面模版(template)等,采用結(jié)構(gòu)化的功能設(shè)計和界面布局設(shè)計。Mambo核心系統(tǒng)有前臺用戶界面和后臺管理界面,方便最終用戶使用和系統(tǒng)管理員管理,實現(xiàn)用戶管理、權(quán)限管理、多語言管理、組件管理、模塊管理、界面模版管理、數(shù)據(jù)庫備份和恢復等諸多系統(tǒng)管理功能,提供文章管理、首頁管理、網(wǎng)站鏈接、在線調(diào)查、橫幅廣告等常用組件,提供菜單、登錄框、計數(shù)器等常用模塊,還提供4個界面模版,滿足小型網(wǎng)站使用游刃有余。其后臺管理界面采用類似于MIS系統(tǒng)的界面布局,有菜單、工具欄、按鈕、狀態(tài)欄等,界面簡潔大方,風格統(tǒng)一,符合Windows用戶的使用習慣,不注意看還以為是在使用Windows應(yīng)用程序。Mambo的組件相當于功能模塊,在界面的中央主區(qū)域顯示,通過管理后臺靈活安裝和卸裝,支持第三方開發(fā),非常便于系統(tǒng)擴展。Mambo的模塊是一個個豆腐塊,可顯示在除中央主區(qū)域之外的任何界面區(qū)域,在界面的頂部、底部、左欄、右欄,還可以自定義顯示位置,可通過管理后臺靈活安裝和卸裝,還可動態(tài)創(chuàng)建基于html語言的簡單模塊,如友情連接、合作伙伴等。通過Mambo模塊設(shè)置,可以定制出專業(yè)的前臺用戶界面布局,其機制比Tikiwiki更簡單,功能更強大,更靈活。Mambo的界面模版機制更絕,只需要一個index.php文件和一個css文件就搞定,index.php中大部分是html代碼,另有幾個php的echo、mosLoadModules函數(shù),用于動態(tài)顯示頁面標題和動態(tài)調(diào)入Mambo模塊,這種機制使界面模版的設(shè)計可以在準可視化的方式下進行,原來首頁怎么設(shè)計,現(xiàn)在也是怎么設(shè)計,界面的美化程度就要看你的美感和美術(shù)功底了,首頁設(shè)計完后把一些地方換成php函數(shù)動態(tài)調(diào)入就行。界面模版同樣也可通過管理后臺靈活安裝和卸裝,換膚相當容易。簡單、靈活、高效,比smarty技術(shù)強大易用。Mambo開發(fā)社區(qū):www.mamboforge.net。Mambo中國:www.mambochina.net。
但是,Mambo的權(quán)限管理功能稍弱,名義上Mambo使用phpgacl進行權(quán)限控制,應(yīng)該很強大才是,實際上Mambo只借用phpgacl的殼而已,原因很簡單,phpgacl是基于php+ADODB+Smarty開發(fā),而Mambo則基于php+MySQL開發(fā),技術(shù)底層明顯有沖突,因此Mambo簡化了phpgacl的API函數(shù),并把它寫死在核心代碼中,并不能進行動態(tài)的權(quán)限控制。雖然對于只需幾個人維護的網(wǎng)站,Mambo權(quán)限管理已經(jīng)夠用,大的網(wǎng)站,管理角色一多就不適用。另外,Mambo的多語言支持,尤其是中文支持比較弱,Mambo核心系統(tǒng)只提供前臺用戶界面的翻譯接口,后臺管理界面卻沒有提供。
PHP+MySQL的CMS可謂滿天飛。PostNuke是PHPNuke 的衍生作品,類似的還有Xoops,E-Xoops等等。他們都把自己標榜為CMS 內(nèi)容管理系統(tǒng),但是事實上,他們只能算是WPS(WebPortalSystem) 網(wǎng)站門戶系統(tǒng)。真正的CMS是完全將內(nèi)容和表現(xiàn)形式分開的,而所有內(nèi)容都依照類別儲存。真正的PHPCMS有:
ezPublish,Typo3,Xaraya
Xaraya開發(fā)者是從PostNuke 分離出來的,但是代碼是完全重寫的。
BBS方面,當前PHPBBS最好的無疑是vBulletin。 其次是InvisionPoweredBoard 。這個論壇最大的特點是可以無限期免費試用,保留它頁腳的版權(quán)就可以了。功能雖然比vbulletin差,但是比Discuz PHPBB還是強不少。代碼架構(gòu)非常整齊漂亮,同時速度比vBulletin 要快。如果要免費的論壇,這個是首選的。接下來是PHPBB了。PHPBB開發(fā)者眾多,但是開發(fā)速度還是顯得有些慢。而且在負載效率的考慮上比前兩個差多了,功能上也遠不及。雖然可以加Mod解決功能問題,但是會對論壇升級帶來不便。國產(chǎn)的論壇Discuz 是我最不推薦的論壇了。因為首先它本身就有版權(quán)問題(由XMB1.6修改而來)。其次它的安全漏洞很多,而最新的3.1.2版本還用Zend加過密,不便于根據(jù)自己的需要修改。
Weblog方面,PHP平臺公認最優(yōu)秀的就是WordPress和MovableType了。后者目前只提供單用戶版的免費下載,不限用戶的版本要100美金。如有可能,個人將建議圖書館購買一套作為館員工作日志平臺。WordPress功能夠用,容易維護,界面方面有許多經(jīng)典的模板可供下載,也容易根據(jù)自己的需要進行更改,很適合作為個人日志或者團隊日志的web平臺。
幾個典型的weblog站點:
基于PostNuke:沈晶冰炫耀地
基于MovableType:凡夫俗子
基于WordPress:數(shù)字圖書館前沿問題高級研討班