2015年4月13日 星期一

不專業架站經驗:Joomla還是Drupal?(下)

原始發布時間:17 元月, 2011 15:01


 >> 不專業架站經驗:架站軟體Joomla還是Drupal? (上)

如果你的網站內容經常更新,而且後台更新內容的使用者可能不只一人;希望網站在架構及門面上給人更為專業的感覺,那麼還是需要一套CMS──也就是Content Management System,內容管理系統,或者稱為上稿系統。也有人將它叫做架站軟體。

近幾年來一些CMS可以說是蓬勃發展,而且很多都是免費的開放平台。只要克服一些心裡障礙,如果你對於PC一些進階操作學得來的話,一些架站軟體要學會其實都不難──不需要懂PHP、資料庫、CSS……等一大堆專業技術。

而你的使用者,只要會貼部落格,會用Facebook找朋友,大概也不用擔心架好的網站他們不會使用。現在的這些開放源碼CMS使用都相當簡單,甚至比很多專業的內容網站所使用的上稿系統都還要好用──因為技術較新之故。

而且這些平台都有很完善的社群,開發各種不同的版型,讓你為自己的網站選擇不同的外觀設計;以及各種不同的模組或擴充程式,可以為網站提供更多樣化的功能。還有社群的技術論壇,可以幫你解決技術問題。不過,如果你要把網站架得更專業與更漂亮,當然還是建議去找專頁的網頁設計師幫你設計版型。

Joomla!就是選Joomla!

但到底目前最受歡迎的Joomla與Drupal之間要如何做選擇?

如果你什麼都沒說,直接問我這一個簡單問題,我要為公司架網站該選什麼CMS?我會豪不猶豫的回答:Joomla!

既使你野心很大,你說想要經營一個網路媒體,像是要弄個新聞網站,我的答案也是Joomla!當然,用部落格架站平台WordPress也是個不錯的選擇。

只有在一些特殊情況以及某些條件之下,我想才必需考慮選擇Drupal(我說「考慮」,不是說「決定」):例如你對網站有些稀奇古怪的想法,Joomla或WordPress等其他CMS的確無法滿足你;或者是你對於網站未來功能發展的彈性有很大很大的堅持,而且你有專人,及時間精力慢慢去做功能擴充與維護CMS這件事。

否則,絕大多數情況下,我想Joomla都是比較好的選擇。

↓ 企業架站建議以Joomla當優先選擇,Joomla不適合再考慮Drupal



Joomla:五臟俱全的平台

Joomla是一個相當適合幾乎所有企業架站的一個平台──從微型,個人,到大型企業都適用。反而,因為白宮網站採用而聲明大噪的Drupal,我認為並不適合中小型以下的企業使用。

至於案例,Drupal就不用說了,該不會有人覺得美國白宮還不夠大咖?

Joomla最知名的使用案例當屬去年底eBay採用作為企業入口網站,
參考資料: 



〔靜態HTML網頁因為沒什麼公司在用,所以前一篇也只好舉自己架的爛網站讓大家見笑,還真的有人很聽話的來取笑~~~至於Joomla,以上有很多專業範例供大家參考,所以不用擔心這系統太寒酸!!不過以上連結進去之後記得要再層層點進去!〕

Joomla在安裝好之後,該有的功能大概都已經非常完備而好用了,只要把選單、導覽、版型,及內容架構調校好,工程大概就結束,這些工程當然視情況而有不同。但我們假設一切都已經就續,內容架構及網站地圖都已知道之下,大概不需要半天時間就可完成一切。

接著一些功能的擴充,不但可以慢慢來,而且也相當簡單。比較麻煩的大概就是同一功能往往有非常多的選擇,到底該選那一個最適合?可能得慢慢尋找與測試才可。但這還是比Drupal簡單及安全很多。

一般而言,Joomla安裝及設定好之後,需要再擴充的功能大概就是秀圖或幻燈片外掛(或模組)、像Google Analytics等一類的流量分析、captcha,或者是跑馬燈等等。其餘的則視個人特殊需求而定。

許多在Drupal中相當麻煩,可能還得經長期抗戰才能解決的,像是「我是歪哥」(Wysiwyg)視覺化編輯器、圖片上傳及媒體管理、網址別名(alias)、文章分頁…這些CMS該有的基本功能,Joomla安裝好之後都已經理所當然的可以直接使用,而且相當便利好用。

Joomla甚至連廣告管理系統都內建了,你可以直接在後台管理banner的位置以及該如何曝光。

個人使用半年的感覺,相信Joomla可以滿足大多數企業對CMS的需求,企業所需要的,只是去了解如何使用它。

而且觀察使用者的使用行為,覺得它也相當容易上手。甚至,對於進階功能的操作,例如安裝之後讓使用者自己去設定選單,以及修改內容架構,甚至安裝擴充功能等等的,其學習門檻也不高。大概買本書,幫使用者在PC上裝個模擬的網站,讓他按圖索驥,一個星期就能學個大概,一個月大概就能很熟練了──而我試驗的對像是一個五十幾歲的個人企業主。

↓ Joomla安裝完成之後,一切就續,就只等著你去使用與了解它,像是Wysiwyg視覺化編輯器,以及網址別名等功能 



Drupal:安裝好之後工作才開始

相較之下,Drupal會較適合於功能複雜,以及對未來彈性有很大要求的網站。至於什麼樣才叫複雜,這也實在很難定義。

我想可以這樣比喻:Joomla像是一台All-in-one或筆記型電腦,你買回家打開包裝,插上電,做好OS安裝及基本設定之後,就開始用了。你要的功能什麼全都好好的在那裡,簡單好用──而且滿足絕大多數人的需求

Drupal就像是一個準系統,或是電腦空殼,幾乎什麼零件和規格都可以隨你裝,但代價是你要對規格有深入的了解與研究。而且因為你買的是一堆零件和空殼,所以如何讓這些分屬不同廠商的零件在軟硬體上結合無間,是個很大的挑戰:你可能遇到硬體不相容問題,驅動程式問題,零件壞掉或有臭蟲問題………。

我還想用另一個比喻:當你安裝好Drupal之後,和Joomla之間的差異簡直是「準備好廚房」和「一桌滿漢大餐」的不同:你要上桌吃飯,還早得很。你要先做非常多的相關設定,克服很多問題,安裝好編輯器、還有圖片上傳以及多媒體管理功能………總之,要讓使用者可以進去使用,開始貼文上稿,還有些距離。

舉例來說,現在對任何CMS甚至部落格平台可以說是標準功能的「我是歪哥」編輯器(Wysiwyg,what you see is what you get,所見即所得,請見上圖),在Drupal問題就相當多。

甚至使用了半年,我還沒完全攪定這個問題。雖然最後所用的TinyMCE可在Chrome、Firefox、Opera上運作的還不錯,但在IE上就是經常有bug。為了IE,退而求其次安裝了FCKEditor,使用上比較順暢了,但有些icon(像是插入摘要分隔線)就是不能用。

而如何讓使用者可以簡單用「我是歪哥」編輯器很直覺的在Drupal文章中貼進圖片?我發現到解決方案是用Windows Live Writer API(WLW API)上傳可能會比直接在CMS裡解決還簡單。

但以上所說的這一切,在Joomla上卻是安裝好之後就已經相當完備而理所當然的功能了。

所以,簡單說,選擇Drupal的原因,就是你要用「麻煩」來換取彈性與功能擴充空間。

以下從各種使用情境與面向來細談兩者的差別。


↓ 剛安裝好的Drupal就像它的編輯器一樣陽春,什麼都沒有,距離要拿出來給使用者使用還有一大段距離



功能擴充:Drupal與Joomla大不同

許多評論認為,兩者都有很好的擴充功能,然後在這項評比上給兩者同樣的好評。但這種說法實在太過空泛,空泛到我覺得沒什麼意義。

如果沒深入了解兩者的差別,很可能讓你做出錯誤的決定與判斷。

Joomla簡單,Drupal錯綜複雜

雖然兩者都有廣大的社群提供豐富的模組或擴充外掛,但一般而言,Joomla的模組都很簡單,就像整個CMS系統核心一樣,它的外掛功能安裝之後大概就可直接使用,使用門檻也都相對非常低。

Joomla有些模組或外掛,例如秀圖或幻燈片程式,可能需要多看一下使用說明,該如何下指令,這大概算是比較麻煩的了,但這還是比Drupal的簡單太多。

Drupal的模組可不是這樣。

Drupal的單一模組本身簡單的有之,但不簡單的更多。很多模組的學習門檻都相當高之外,模組與模組之間的相戶依存關係又非常複雜。經常你只為安裝一個模組,但Drupal會買一送十:除了送你一大堆子模組外,你還得安裝更多模組。

所以這是安裝Drupal經常會遇到的情境:你只為了安裝一個自認為很簡單的功能,於是下載了一個模組,例如,模組A。要用時除了發現順帶裝進了模組B、C、D、E、F等子模組之外;你需要的模組A還需要G、H、I……運氣不好的話,可能裝了G、H、I之後又發現,G還需要J、K、L、…………。〔我不知道最倒霉可以到什麼地步?〕

以上的說法到底有沒有實例,我想應該不勝枚舉。眼前我就講了一個:要在文字編輯器上讓使用者直接插入圖片這件事。當你要安裝TinyMCE時才發現,要先安裝好一個我是歪哥的模組,然後才開始TinyMCE安裝與設定的龐大工程。

接著好不容易TinyMCE裝好了,可能有bug,還有CSS壓縮問題而不能運作等麻煩先不用說,單單圖檔上傳部份,若要讓一般使用者可以用得像Joomla那麼順手,又得安裝一大堆image cache或image assist等等相關的模組……安裝過程中,入門者很可能遇到整個CMS掛掉〔我就掛了好幾次〕。遶了一大圈才知道,因為這類image模組需要很高的記憶體,你的系統PHP 記憶體限制太小(這類問題如何解決往後文章會介紹)………好不容易安裝完image相關模組,發現到還得安裝與TinyMCE橋接起來的模組………

也因為模組及模組與模組間的相互關係複雜,所以,模組相衝的事也不難遇到。例如,我安裝的Gmap功能,有時候可能受Javascript壓縮模組(為提升網站效能);Fivestar內容評鑑功能也會讓Gmap失效;還有原本要在Gmap上安裝一個可以進行路逕規畫的功能,但該模組又讓整個網站的gmap功能當掉〔目前還沒研究出解決之道〕………。

事實上目前我就有許多想用或使用中的Drupal模組還沒攪定,沒參透。像是Views,我玩了半年了,Argument還是不大會,如何與Ctools配合也一無所知。雖然不見得學不會,也可能只是我一直沒有花費足夠時間去好好學,但由此也可知Drupal模組的複雜性,遠非Joomla可以相比的。

由此衍生的,還有模組的更新問題。

Drupal因為比Joomla更為頻繁。可能一、兩個月沒去管它,到後台網站狀態一看,一片紅通通的:全是警告要安全更新的訊息,這個也要更新,那個也要更新。


↓ Jooml的外掛功能(相當於Drupal的模組)通常都很簡單,模組/外掛獨立安裝後就可直接使用



↓ 通常來說Drupal的模組要複雜很多,雖然也有很多簡單到和Joomla一樣,單一獨立且安裝之後立即可用,但使用者經常會遇到複雜的.模組與模組之間相互依存的關係更增加其複雜性.圖例中的CCK,下面就有一長串的子模組之外,裡面的Content子模組裡,和它有依存關係的模組就高達十幾種




Joomla選擇多樣,Drupal選擇很少

而在模組的選擇上,由於兩者開發模式的不同,通常來說,當你要擴充某一功能時,Joomla的選擇較為多樣性,Drupal選擇性較少,甚至經常可以說是「沒得選擇」:因為單一功能理論上就只有一個。

Joomla的模組及外掛功能開發,是比較百花齊放的民主式,就是外面一堆人在這個平台上開發,你覺得可以收費你就收費,要免費送就免費送,Joomla並沒有一個集中式的控管──但所有官網上的模組都是免費而開放的。

所以,經常同一功能的模組或外掛,Joomla可以讓你找到一狗票選擇。有免費的,也有收費的;這個用不爽,再用另一個;你可以在Joomla下載頁面裡依熱門程度一一選擇找到較合你意,順你手的。

但Drupal的開發則比較是集中化管理的。它是以社群中的「貢獻者」,或者是加入Drupal.org的開發志工為主。通常一個模組就是一個project,社群內有人開出規格或要求,經過討論及有人認養之後才會開發。 另一方面則是像美國白宮,或是外面一些具開發能力的開發者所貢獻。

所以,通常來說,Drupal模組雖然經常會有些功能相類似的,但理論上是不會重覆的。〔當然實務上,一定還是會有重覆到的模組,這裡講的只是一般原則。〕

這意謂著Drupal的模組選擇是較少,甚至有時是沒得選擇的。如果萬一你用的模組不好用,不順手,你頂多只能再找相近的看能不能解決你的問題,或者自己進去修改程式碼(如果你有這個能力的話)。當然了,你也可以在社群裡提報相關問題,如果是臭蟲,就等著模組的維護者幫你改好,或是熱心人士來協助你,教你怎麼修改。

像之前我在使用Gmap及Location模組時就遇到這樣的問題。Gmap的臭蟲讓我的地圖應用無法正常運作,看社群的討論確認是臭蟲,許多人回報遇到和我一樣的問題,社群裡有人提出並教人如何修改php程式碼──但我不會修改,有看沒懂,所以只能等著專案維護者修改臭蟲並釋出更新版了。

還好,我很幸運,經過一周就有人將它修復,如今運作正常。像這種情況,在Joomla的例子裡,你可能可以找到一狗票替代的模組,一個個試,試到你用起來最爽的為止。但在Drupal上,我只能等,只能碰運氣等待──所以在安裝一個模組之前,如果你和我一樣沒有程式的能力,最好注意一下該模組的維護狀態,是有人在負責的?還是已被棄守的?


↓ Joomla的模組開發是百花齊放式的,單一功能市場上會有許多選擇,有免的也有商業的,像單單Images Slideshow就有87種;而Drupal通常一種功能只有一個模組,雖然會有模組相類似的.




內容分類方式:Joomla簡單直覺,Drupal自由沒限制
CMS中內容如何分類才叫做好?這沒有一個絕對的答案。但是我覺得Joomla是比較符合傳統的分類習慣與直覺的。

我記得我第一次使用Joomla時,就很直覺的知道要如何利用上面的架構去分類出我要的樣子。

Joomla的文章分類是採兩層的階層式,所以也很容易把內容從大類一直分到小類。如果你的內容是這樣分類的,那麼使用Joomla會比較簡單──這也是大多數文章會採用的分類方式。


↓ Joomla文章分類採階層式很符合傳統上,一般對內容的分類思考模式.其上層的分類稱為"單元"(圖示中左方可見"品茶"的拉式選單);下層稱"分類"(右邊的下拉式選單)



但內容分類的機制在Drupal就複雜很多,它帶進了「標籤」(tag)及自由分類的概念在做這件事。所以一向以階層式架構思考內容的我在使用Drupal時,一開始真的非常迷惑。

實際在使用上,除了管理員可以設定好預設的vocabulary (主分類) , term (次分類)讓使用者選擇外(而且還可多選),還可以用Tag(自由標籤)讓使用者自訂分類;而且這些分類還可以適用於各種文章類型.....

反而像傳統的階層式選單,或是內容,在Drupal並非做不到,像Hierarchical Select這樣的模組可以讓你做到,但也只是「模擬」出來的,而且可能會對Views的設定有很大的改變。 〔我使用過之後放棄,因為深深覺的階層式分類完全不符合Drupal的架構,硬做出來的東西用起來就是不舒服〕

這種好壞見仁見智,如果你對內容是很Web 2.0思考的,那麼Drupal反而更能符合你的需求。

另外,Drupal也依照文章的發布、呈現機制及格式等不同,提供各種不同的內容類型,一般報導為story,網站基本資料一類的則是page。另外也可以有部落格平台(blog),論壇(forum),書冊(books)等等不同內容類型,還可安裝模組另開像是相簿一類的內容類型。 甚至,你自己可以依照需求自建客製化的內容類型,例如你想建一個產品資料庫,那麼可以依照產品所要輸入的資料類型自建相對應的欄位,然後在CMS裡產生一種叫"產品資料庫"的內容類型。

就這一點來說,如果你想開發的是具有綜合性內容功能的網站來說,Drupal有相當好的優點。你可以想像,在同一個CMS上,你就可以同時管理所有的這些不同類型的內容。相較之下,Joomla並沒有所謂的「內容類型」的架構,也沒有CCK這樣的擴充能力。

↓ 相較於Joomla文章分類的簡單, Drupal則相當複雜.不但文章分類可以複選及自訂標籤,連文章類型都可以自己來製定,例如你可以自己建立一個產品資料庫的內容類型(或者可以安裝e-commerce或Uber-cart一類的模組就會有產品資料庫的文章類型〕



Joomla 更適於網頁設計者
Joomla讓CMS在技術上簡化到極致,對於一個公司網站來說,幾乎可以完全不需要程式開發人員的角色,讓公司在架設網站時只需專注於一件事:版型外觀的修改。一但架設完成,也只需更新你的內容,以及做好簡單的使用者管理即可。

細節的技術我不懂,而這個標題的論調我知道也有很多爭議性,網路上經常可見到諸如此類的辯論。反對者所持的論調大概是:〔網頁設計方面〕Joomla做得到的Drupal也都做得到,而且都有解決方案。

但我的看法是,在網站開發與維護的分工上,Joomla因為讓PHP的技術問題精簡到極致,所以網頁設計人員不需PHP程式設計能力,只要專注於他專長的CSS即可,所以自己就可以盡情的在這個平台上發揮──問題並不在於Joomla可以做什麼,Drupal不可以做什麼,而是在於網頁設計師在Joomla上可以更加自在的全力去發揮他的專長。

在Drupal上,可能要同時有專長於CSS,以及PHP的人,要有這樣的分工才能真正把Drupal網站弄到極致。修改CSS時,甚至偶爾可能會遇到必需修改PHP的問題;或許都不是很難的PHP,但畢竟也是種技術負擔與障礙。

不過我這是外行人觀點,或許網站設計人員真正在Drupal上開發版型時,完全沒有這個問題。

Drupal優勢:CCK+Views,使用者管理,前後台整合

在前文的比較中,多數是Joomla的優點,Drupal的弱點,這裡講的比較是Drupal的優點 。

一般對Drupal的印象就是:彈性,功能強大。但更具體的說而簡單的說,大概就是最有名的CCK+Views兩個模組所提供的強大客製化能力,以及非常彈性的使用者管理。

CCK+Views

玩過Drupal的人一定都知道CCK+Views這樣的功能組合。而如果你還沒用過,想了解及比較上稿系統優劣,你也一定要知道這兩者的威力。這兩個模組,同時也是Drupal下載安裝次數最多的。

CCK是Content Construction Kit的縮寫,意思就是「內容建構工具組」。它讓使用者可以任意為文章類型增加欄位,你可以自己定義欄位的各種屬性:例如它是文字式的、數字,整數,圖片,甚至是相關文章的關聯,或是地理資訊(包括地址、經緯度)……要加什麼欄位,隨你的需求。如果CCK模組未提供的,你還可以擴充其他模組。


Views模組,對岸翻譯作「視圖」,台灣還沒有一個正式的譯名,我自己翻譯的「語言檔」則將它譯為「組版」(該語言檔目前為自用,有興趣要更完整的Views語言包的可來索取)。

Views可以讓不懂程式的人也能夠設計網站該如何撈取以及呈現CMS裡的所有內容。

例如,你可以透過過濾器選擇符合條件的內容才出現,你還可以設定文章的那些欄位要以怎樣的形式出現,排版是要用標準HTML還是表格;如果你安裝了Gmap模組,搭配Location,甚至可以讓具備圖資資訊(如地址,或是經緯度)以Gmap地圖形式呈現。

CCK+Views可以說讓Drupal網站千變萬化,而這也是它相當迷人的地方。我還要再強調的是:這些看似艱深的功能,不需要任何程式開發能力,一般人就可做到。


↓ View讓不懂PHP程式的人也可以透過點點選選就設定好網頁該如何撈取與呈現CMS裡的資料,甚至不懂php也可以自己做出Gmap的內容呈現方式(注意圖中"樣式"一項選Gmap)



使用者管理功能強大

Joomla和Drupal一樣都可以為每個不同使用者指定不同的角色,不同的角色會有不同的權限。但就像其他功能一樣,Joomla是相當精簡而實用的──相較之下Drupal比較能夠提供進階而詳細的管理需求。

甚至,在安裝Content Permission後,存取權限還可以細節到那一個角色可以存取內容的那一個欄位的層次──不是單篇內容的存取。換句話說,可以做到例如:讀者、編輯,及管理者看到的內容都完全不一樣。

而且你也可以自訂角色,並設定角色的各種很細節的存取權限。若再搭配像Rules這樣的模組,還可以控制那個角色在網站上做了什麼事網站自動做出怎樣的動作,包括拉下文章,或者是刪除文章……。

↓ Joomla的使用者權限系統都已經設定好,每個角色都有明確而符合一般上稿及後台管理的流程與規則



↓ Drupal讓管理者可以設定的權限相當詳細,甚至如果你再安裝Content Permission模組,細微到連文章中那些欄位什麼人可以看什麼人不可以看都可以



打破前後台界線

傳統的上稿系統,都有一個清楚的前後台的區隔,兩邊徑渭分明。這在Joomla也是,但Drupal就不是了。

Joomla的前台和後台是完全不一樣的,前台指的大概是內容呈現,也就是在Internet上開放給一般人去觀看與使用的部份。後台則比較屬網站管理的部份:包括網站功能,文章,多媒體……的各種管理介面。

一般來說,要做後台的事,就先進入管理介面,然後再找你要做的事。

Drupal雖然也有這樣的區別──前台和後台當然要有所區別。只是,Drupal和Joomla還有傳統的上稿系統很不一樣。

在Drupal,當你見到一篇文章或任何問題時,可以直接就從見到問題的頁面進去後台更改。不需要先到後台首頁,然後再層層進去尋找該篇文章或者該功能的介面。

一開始我在使用Drupal時對此良好的設計相當不習慣,因為傳統上稿系統在前後台的分野上相當清楚,要修改文章,請先登入後台,然後再層層去找你要修改的東西,如果是一百年前的文章,那就等著找到死。

使用十幾年的上稿系統,我必需說:這真的是非常好的一種設計。

↓ Joomla的後台,比Drupal簡單清楚; 一般來說,要編輯文章或者做網站管理, 都必需先進到這個後台來




↓ Drupal的後台顯然複雜多了,這裡所看到的還只是一半.不過在Drupal,並非什麼事都得先來後台才可處理,在前台見到什麼問題,往往直接從前台就可進入問題點進行修改




↓ 由於使用者權限的不同,同一個頁面不同使用者看到的是不一樣的.上方為管理者所看到的文章,多了後台管理的標籤,使用者在看到文章有錯時就可直接點選進去修改. 下方則為一般使用者見到的頁面



~~本文結束.若有任何錯誤或疑問,也歡迎大家提出分享~~



沒有留言: