Drupal適合你嗎?

Drupal是一個高度客製化、模組化的內容管理系統。仔細考量您所需要的特色和功能,Drupal有可能是您的最佳選擇。

在您回答Drupal是否適合您之前,我們有問題要先問您:您是哪一種類型的Drupal使用者?您的需求是什麼?

我是一個Blogger,我想要...

所需技術等級:一般使用者、管理者

我正在替我的組織/公司評估Drupal,我們想要...

所需技術等級:評估人員、一般使用者

我是社群創辦人,我想要...

所需技術等級:評估人員、一般使用者、管理者、網站開發人員(某種程度)

我是小公司的老闆,我想要...

所需技術等級:評估人員、一般使用者、管理者、網站開發人員(有限程度)

我替客戶建置或設計網站,我想要...

所需技術等級:評估人員、管理者、網站開發人員(某種程度)

我是一個程式設計師,我需要...

所需技術等級:管理者、程式設計師

您知道您想要成為哪一種類型的Drupal使用者嗎?如果您知道,請看看下面的技術等級說明,以瞭解您的Drupal使用者類型所可能需要的項目。

現在,您已經知道您可以成為哪一種類型的Drupal使用者,接下來,您應該花一點時間,瞭解Drupal。

案例研究部份,將檢視Drupal常見的應用方式,並針對所提到的運用方式展示一些實際採用Drupal的網站。這裡也會列出其他許多採用Drupal的網站。

功能總覽部份,我們會介紹Drupal裡最重要以及最常被使用的功能。

關於使用Drupal來架設網站、而非從頭撰寫一套網站的優點,則會在自行開發vs.使用Drupal這篇文章裡進行討論。

Drupal網站範例

花點時間瀏覽一下這些Drupal網站,它們展現了Drupal的多樣面貌。這些網站展示了Drupal網站可以如何地建置,以符合各個不同的功能和需求,同時仍保有設計感與動感。

範例研究 - 不同類型的網站與範例連結

Drupal可以符合幾種不同類型的網站的需求:

社群入口網站
如果你想要一個是由使用者來提供內容的網站,Drupal可以滿足你的需求。投稿的作品可以開放給網友進行投票,得票數高的文章將可以出現在首頁上。不好的作品和回應在獲得一定的負面評分後,會自動地隱藏起來。
範例網站:Debian Planet | Kerneltrap

個人網站
Drupal很適合只想要架設一個個人網站的使用者,你可以撰寫部落格、張貼照片,或是收集一些網站連結。
範例網站:urlgreyhot | Langemarks Cafe

嗜好網站
Drupal也很適合用來讓使用者分享他們對於某一主題的專精與熱衷。
範例網站:ia/ | Dirtbike

企業內部/企業網站
企業可以採用Drupal來建置他們的內部與外部網站。Drupal很適合這些用途,因為它的權限系統很有彈性,而且以網站為基礎的出版方式非常地便利。花不了多久時間,你的網站管理人員就能把企業網站做好。
範例網站:Sudden Thoughts | Tipic

資源分類目錄
如果你想要一個特定主題的分類目錄,Drupal也可以滿足你。使用者可以自行註冊並提供資料,編輯則能過濾這些資料。
範例網站:Entomology Index

國際化網站
當你開始使用Drupal,你就加入了一個大型的使用者與開發者的跨國性社群。要感謝Drupal的本土化功能,有許多Drupal網站是採用各種不同的語言所建置的。
範例網站:PuntBarra | cialog

教育網站
Drupal可以用來建立動態的學習社群,作為面對面教學的補充方式,或是作為遠距教育課程的平台。教育機構也可以善用其互動功能,以及提供公開內容、僅供會員瀏覽的資訊、或是會員訂閱管理等功能。
範例網站:ENGL 420S | WPA

範例檢視與分析

以下是與Drupal相關的、不同軟體和平台的檢視和分析。

為telecentre.org的分散式網路選擇平台

Telecentre.org替其位在世界各地的網站規劃一個分散式的網路。這份文件勾勒出選擇telecentre.org的網站平台時所依循的過程;我們最後的選擇正是Drupal。

要瞭解特定的需求和引領這過程的整體網站策略,請看看個別的telecentre.org網站上的策略文件。整體的願景是一個可能是在不同的平台上運作的網站網絡,包括運行在我們以Drupal為基礎的「一站支援網路」上數量不斷成長的網站。

採用Drupal的網站列表

這裡將列出採用Drupal的網站(以繁體中文為主,歡迎自主登錄)。

教育網路中心課程大綱

上週末去中部某教育網路中心,講了一遍 Drupal 的簡介。學校應用我真是不太熟,不過在準備的過程中,倒是看到一些學校的範例很不錯 :)

成功故事

這裡會介紹Drupal如何能夠解決你的問題的真實案例。也歡迎你與我們分享你的Drupal成功經驗。

功能概觀

    一般功能

  • 共同寫作:
    Drupal獨特的共筆功能,讓你可以發起一項需要有人來撰寫的專案或「手冊」,並授權其他使用者一起來貢獻內容。

  • 友善網址:
    Drupal利用Apache的mod_rewrite功能,讓你可以自訂網址,對於使用者和搜尋引擎來說都很方便。

  • 模組:
    Drupal社群開發了許多模組,提供多樣化的功能,例如分類呈現、jabber認證、私人訊息、書籤等等。

  • 線上說明:
    就像許多開放源碼專案一樣,我們不能說我們的線上說明是完美無缺的,但是已經建立了一套扎實的線上說明系統,提供核心的說明內容。

  • 開放源碼:
    Drupal的原始碼是透過GNU General Public License(GPL)條款免費提供。Drupal不像私有的部落格或內容管理系統,可以依據需求完全加以延伸或客製化。

  • 個人化:
    Drupal的核心裡就預設了完整的個人化環境。網站的內容和呈現都可以依據使用者所定義的方式進行個人化設定。

  • 以角色為基礎的權限系統:
    Drupal的管理者不需要辛苦地為每一個使用者設定權限。他們可以把權限設定給某些角色,並把使用者分配到角色的群組裡。

  • 搜尋:
    Drupal裡的所有內容都可以建立索引並進行搜尋。
    使用者管理

  • 使用者認證:
    使用者可以在本地端進行註冊與認證,或是使用外部認證來源,例如Jabber、Blogger、LiveJournal或另一個Drupal網站。對於企業內部網站的使用來說,Drupal還可以與LDAP伺服器進行整合。
    內容管理

  • 投票:
    Drupal內建了投票模組,可以讓管理者和/或使用者發起投票,並在不同的頁面裡呈現出來。

  • 版型:
    Drupal的版型系統把內容與外觀分離出來,讓你可以控制你的Drupal網站的外觀。版型是以標準的HTML和PHP撰寫的,這表示你不需要去學習特定的版型語言。

  • 主題式回應:
    Drupal提供了強大的主題式回應系統,可以讓網友針對所發佈的內容進行討論。回應可以是階層式,就像是新聞群組或討論區那樣。

  • 版本控制:
    Drupal的版本控制系統可以追蹤內容更新的詳細資訊,包括了修改者、修改的內容、修改的日期和時間等等。版本控制的功能還提供了回應紀錄,並讓你可以把內容回復到早期的版本。
    部落格

  • 支援Blogger API:
    Blogger API讓你可以使用多種不同的工具來更新你的Drupal網站。這包括了非採用網站瀏覽器為基礎的工具軟體,可提供更豐富的編輯環境。

  • 內容串連:
    Drupal會把你的網站內容以RDF/RSS的格式匯出,讓其他人可以使用。這讓任何使用像是NetNewsWire或Radio UserLand這種「新聞匯聚工具」的人,都可以方便地從他們的電腦上瀏覽你的Drupal網站。

  • 新聞匯聚:
    Drupal內建了一個功能強大的新聞匯聚工具,可以用來閱讀並紀錄其他網站的新聞資訊。這個新聞匯聚工具會將文章暫存在你的MySQL資料庫裡,而這個暫存的期限是使用者可以設定的。
    附註:當你有幾天沒有上網時,這功能可以幫助你不會漏失資訊。

  • 永久網址:
    Drupal裡的所有內容都會有一個永久的網址連結,不會出現連結錯誤或找不到網頁的狀況。
    平台

  • Apache或IIS,支援Unix / Linux / BSD / Solaris / Windows / Mac OS X:
    Drupal從一開始的設計就是要支援多種平台。你不僅可以在Apache或Microsoft IIS上使用,我們也可以在Linux、BSD、Solaris、Windows和Mac OS X等多種平台上執行Drupal。

  • 資料庫:
    許多使用者採用MySQL來執行Drupal,但我們知道MySQL並非每一個人的選擇。Drupal是建立在資料擷取層之上,以你可以使用MySQL和PostgreSQL來執行Drupal。其他SQL資料庫也能夠被支援,只需要撰寫一個有14組功能的資料庫後端程式,並建立相對應的SQL資料庫架構即可。

  • 多語系:
    Drupal的設計是要符合國際性的使用需求,提供一套完整的架構,可以建立多語系的網站、部落格、內容管理系統或社群應用。所有文字都可以使用一個圖形使用介面進行翻譯,或是匯入現有的翻譯資料,或是與其他翻譯工具整合運用,例如GNU gettext。
    管理分析

  • 分析、追蹤和統計:
    Drupal可以列印出以瀏覽器為基礎的報表,包含了關於referral、熱門內容、訪客瀏覽模式等等。

  • 紀錄與報告:
    所有重要的動作與系統事件,都會被紀錄在事件日誌裡,讓系統管理者可以在事後進行檢視。

  • 以瀏覽器為基礎的管理方式:
    Drupal可以完全使用瀏覽器來進行管理,讓你可以從世界上任何角落來進行存取,不需要在你的電腦上安裝額外的軟體。
    社群功能

  • 討論區:
    Drupal內建完整的討論區功能,可以建立充滿活力的、動態的社群網站。
    效能與延展性

  • 快取:
    減少資料庫存取的快取機制,可以提昇網站效能,並減少伺服器的負荷。你不僅可以在網站負荷量大的時候即時進行快取調整,Drupal也成功地通過「slashdotting」的考驗,並且表現良好。

典型的Drupal應用方式

藉由啟用與設定個別的模組,管理者可以設計出一個獨特的網站,例如一個結合了知識管理、網站發佈和社群互動的網站。所以你最好能多瞭解這許多的可能性,以下就是以常見的網站平台特性來做區分的功能列表:

  • 內容管理
    透過一個簡易的、以瀏覽器為基礎的使用介面,會員可以發佈許多不同類型的內容:報導、部落格、投票、圖片、討論區、下載等等。管理者可以從多種版型之中進行選擇,或是建立自己的版型,讓網站擁有獨一無二的外觀。彈性的分類系統,可以針對大部份的內容類型進行階層式的分類、文章索引和多重分類。內容的存取則是透過管理者所定義的使用權限角色。網站頁面可以依據模組類別或分類內容來呈現,同時還擁有各自的RSS。使用者也可以使用關鍵字來尋整個網站。
  • 部落格
    只要安裝一套Drupal,就可以設定為一個個人部落格網站,或是多個個人部落格。Drupal支援Blogger API,為每一個個別的部落格提供RSS,並可以設定為在發表新文章時,馬上通知部落格目錄服務,例如blo.gs和weblogs.com。
  • 討論社群
    Drupal網站可以成為類似Slashdot的新聞網站,並且/或是作為一個傳統的討論區。多數內容類型裡都有的回應區塊,讓會員很容易就可以討論新文章。管理者可以設定是否不需要經過審核就能發表內容和回應,或是必須經過管理者審核或是社群共同審核。社群可以訂閱Drupal內建的資訊匯聚工具,討論其他網站的內容。
  • 協同工作
    用來管理Drupal的建構的project模組,很適合用來支援其他的開放源碼軟體專案。類似wiki的共同寫作book模組,則包括了版本控制功能,讓一個團體可以建立、修改並維護任何類型的文件。

想要更完整的功能列表,請參考我們的功能概觀。想要參考實際的應用範例,可以瀏覽範例研究裡特別介紹的網站,或是看看一些採用Drupal的網站

自行開發vs.使用Drupal

有時你們可能會考慮自行開發自己的系統,而不使用Drupal。Drupal社群非常希望你的加入,因此我們會從你的觀點來呈現一些使用Drupal的好處,而不是自行開發。我們鼓勵你在動手前,思考下列項目:

採用Drupal,有趣且富教育意義

當你還在努力掙扎於讓網站符合你的需求、處在使用單純的程式語言的低階環境裡,Drupal卻有更好的方式。如果你使用Drupal,你會經歷並學習到一個被證明為強大且受歡迎的系統的內部運作方式。這對於你未來的專案,會很有幫助。

當撰寫系統架構時,處理一些無關緊要的細節常會令人感到挫折。有了Drupal,架構已經建好,你可以專注在專案裡的「牛肉」。有了Drupal,你可以減少完成工作所需的煎熬。

Drupal的使用者和開發人員基礎

有數以萬計的網站在使用Drupal,drupal.org上常常同時有超過700個使用者在瀏覽資訊。這讓你在採用Drupal時,擁有以下優勢:

  • 可以滿足廣泛需求的模組
    當你在建置你的網站時,可能會出現你原本沒有想到的功能需求。當Drupal的使用者碰到需求出現時,常常會有人撰寫新模組來滿足需求。在大部分的例子裡,這些模組都是其他使用者貢獻的,所以如果你採用Drupal,你就有機會在模組下載區域找到它們,很容易就可以安裝到系統裡開始使用。此外,你也可以修改這些模組,以更符合你的需求,因為它們都是開放源碼。
  • 容易取得協助
    如之前所提,有許多人活躍在drupal.org。你可以在討論區裡提出你的問題,或是進行搜尋,通常都可以找到一些人建議的解決辦法。如果你是自己搞,你就沒有這種大型社群的支援優勢,因為他們不知道你是怎麼做的。
  • 測試完整的平台
    當系統變得愈複雜,愈有可能發生錯誤或臭蟲,最終會變得難以處理,不是少數幾個人就可以預測所有的問題。你不能依賴你的網站訪客來回報錯誤,因為他們不會告訴你問題在哪,他們只會一去不返。

    每一個安裝了Drupal的網站,都有一個監視模組(watchdog)。這個模組會紀錄錯誤,並在管理者進入管理介面時回報給管理者。此外,對於Drupal系統的使用者來說,網站能如預期所想的方式運作,是非常重要的一件事。因此使用者會把錯誤回報給Drupal的維護人員和模組開發者。為了使這個過程變得簡易順暢,Drupal的維護人員已經建立了一套系統,可以追蹤特殊狀況,並將問題回報給有能力解決的人。

你可以用Drupal建立很酷的網站

我收集了一些範例網站,可以用來支持我的說法。請注意,他們都是很不一樣的網站哦!

想要看更多的例子,可以在範例研究Drupal網站列表裡找到。

Drupal很有彈性

通常選擇自行開發系統的一個重要原因,是因為這樣可以精確地符合自己的需求。然而,Drupal本來就是設計為可以符合各種廣泛的需求,其中一個重要功能,就是彈性。事實上,你是很有機會可以採用Drupal來達成你的目標的。除了前面已經提過的模組、以及可以修改模組以符合你的需求之外,你也很容易就可以設計自己的模組。通常這是透過在檔案裡設計一些導入了某些hooks的函式。以下的函式導入了help hook,可以讓Drupal的核心程式和其他模組來呼叫。

<?php
function mymodule_help($section) {
switch(
$section) {
case
'admin/help#block':
return
'My module will help you get laid';
break;
}
}
?>

這種讓模組與Drupal核心進行互動的方式,已經被證明是非常好的作法。藉由使用hooks,模組可以彼此互動,並利用Drupal的基礎元件,例如節點、分類、管理和使用者系統。

有了Drupal,你可以替未來打算

Drupal已經誕生超過五年了,並且持續地在吸引有興趣且活躍的開發人員。有了這樣良好的紀錄,你可以放心地相信它會繼續成長茁壯。持續不斷的開發,對於網站的建置與規劃而言是很重要的。對於「客製化的程式」,你必須知道是否有人提供適當的文件或回應,才不會導致「維護惡夢」。

網際網路上充滿著關於溝通的想法和作法,Drupal把重點放在與未來一同成長,提供相容於標準的解決方案。以RSS為例,Drupal 4.6版就升級到RSS 2.0的標準。

我們不知道未來的網路標準或想法會是如何,一個客製化網站若要隨之更新,你可能得重寫所有的程式碼。有了Drupal,你可以確定它的彈性和模組化功能,足以隨之成長,並很容易地就能做出改變。

資訊架構師的Drupal:設定綜覽

資訊架構(Information Architecture, I.A.)是結構化資訊(知識或資料)的實做。常根據其在使用者互動或大型資料庫裡的脈絡來進行結構化。
-Wikipedia.com

Drupal提供了一些方法將資訊進行結構化,包括版型、導覽、樣式和應用系統。它提供了一個框架,可以透過可延伸的應用系統(也就是模組),將資訊視為內容來進行管理,模組提供了使用者與內容互動的機會,例如志工管理應用系統。每一個模組都提供一個可設定的管理介面,以客製化此應用系統的行為。每一個模組的權限,也可以針對每個使用者角色來進行設定。

目前(2006/2)有大約370個模組可供Drupal 4.6版來使用,不需要特別的程式設計,就可以進行高度的客製化。你可以用CSS、PHP和AJAX來進行完整的客製化。儘管每個網站有其自己的複雜性,不過一個採用修改過版型、設定了使用者權限與模組的客製化網站,可以在幾個小時內建置完成。

排版
Drupal以三種方式支援內容的排版:區塊、邊欄和選單。4.7版有五種預設的區塊:左、右、頁首、頁尾和內容。這還可以延伸成更多區域。你可以修改Drupal的版型,使用最普遍的變動欄寬的三欄版型,修改成各種變化的排版方式。你可以使用PHP和CSS來調整Drupal的佈景主題系統。Drupal也有一個可設定的選單系統,讓你可以在區塊裡提供導覽選單。

Drupal有一個還在發展中的線框(wireframe)模組,可以讓資訊架構師使用HTML產生使用介面的元件,然後在網站上設定這些元件,以進行使用者測試。這個線框佈景樣式是可以選擇的,屬於CivicSpace版型的一部分。

導覽
Drupal支援多種導覽方式,包括全局、本地、脈絡和情境導覽。Drupal的版型系統可以設定主要和次要導覽,它們是獨立於其他導覽,在版型管理裡進行設定。

以版型為依據的導覽,常常作為全局導覽,不論是放在頁首、標籤或頁尾裡。本地導覽常會動態地被運用在分類、選單裡的子連結或動態區塊裡。脈絡導覽,例如現在位置(breadcrumb),則可以顯示目前使用者位在網站的什麼地方,也常在版型裡出現。情境導覽則是利用所出現的訊息,用來指出操作錯誤或成功。常見的情境導覽例子是使用者表單裡面的說明導覽資訊。

樣式
Drupal隨付幾套預設的佈景主題,可以讓網站進行設定,並可讓使用者來選擇。Drupal的版型範本,利用PHP來協助Drupal和其模組裡的xHTML的樣式化。階層式樣式表被用來調整顏色、色系和排版格式。佈景主題是可客製化的,可以針對網站位置、使用者狀態或內容類型設計特殊的樣式。圖形和影像可以坎入到佈景主題或內容裡。

分類
資訊架構裡的架構資訊中最主要的一個來源,就是透過使用Drupal的分類功能,以及強化了分類功能的20個以上的模組。Drupal允許你管理分類(在這裡稱為taxonomy),可以使用標籤、無階層式、階層式或多層次式的分類詞彙。資訊可以透過內容分類來進行結構化,可以在內容裡加上語意資訊。資訊架構師和網站開發人員常常會使用分類導覽的方式,讓Drupal可以符合他們的組織對於資訊流或營運模式的需求。

應用系統
Drupal大約有570個應用系統,也就是所謂的模組,而4.6版大約有360個模組可供使用。這些模組可以被區分為以下幾種類型:

  • 第三方產品整合
  • 管理
  • 分類
  • 社群
  • 內容
  • 商用廣告
  • 評估與評分
  • 活動
  • 檔案管理
  • 過濾器/編輯器
  • 圖形使用介面/內容呈現
  • 匯入/匯出
  • 地理位置
  • 電子郵件
  • 多媒體
  • 安全性
  • 資訊串連
  • 版型
  • 使用者存取與認證
  • 工具
  • 其他

本頁內容是由CivicSpace Labs的Kieran Lal所撰寫,如果你想要將資訊架構方面的專長提供給Drupal,或是對本頁內容有意見,請聯絡Kieran Lal

專業顧問的Drupal:客戶常見的需求綜覽

當要指定專案的需求時,大多數客戶都會詢問許多同樣的問題,不論該專案是一個電子商務網站或是一個社交網路。以下所列出的是大多數專案所關心的項目,以及本手冊裡其他部份所提供的相關資訊。

注意:本文所列出的是主題,而非該項主題的教學指引。例如,「延展性:案例研究」而非「延展性:如何調校伺服性」。有些教學連結暫時還存在,但以後會移除。

Platform Support

Scalability

Security & Access Control

Administration Overhead

Auditing

Disaster Recovery

Maintenance

  • Upgrade tutorial
  • Do we have any info on dates of previous releases? It would be good to be able to give clients a very rough idea of Drupal maintenance cycles

Documentation

  • Drupal Handbooks
  • Would be better for client if a "Using Drupal" handbook was available, none of the handbooks suits an organisation where a consultant takes care of all technical tasks.

Accessibility Legal Compliance

Professional support

Interoperability