CMS 內容管理系統
DRUPAL
臺師大圖資所
陳恆毅




             0
內容大綱

傳統網站開發流程

內容管理系統 (CMS) 簡介與比較

Drupal 簡介

用 Drupal 架設新網站




                      1
傳統網站開發流程




           2
傳統網站開發五大步驟

網站企畫
網頁設計
程式開發
發佈網站
內容維護




             3
網站設計四大原則(1/2)          (ROSLYN RAWARD. 2001)




 找到網站資訊內容的能力   (Finding the information)

   是否有網站地圖
   索引
   站內查詢
   網站內容目錄
 了解網站資訊內容的組織與結構           (Understanding the information)

   標題是否具有直覺性
   文字清晰度
   用語是否一致




                                                             4
網站設計四大原則 (2/2)

支援使用者的能力       (Supporting user tasks)
  是否有途徑可供提問及建議
  常問問題集
  輔助說明
呈現資訊內容的表現能力 (Presenting the
 information)
  檔案下載的時間
  檔案與圖檔的大小
  是否有圖表
  跨平台的相容性…



                                          5
互動式網頁程式設計(1/4)

系統(需求) 分析
   使用者需要哪些資訊?!
   管理者需要哪些資料?!
HTML 語法
  HTML , DHTML, XML
網頁編輯軟體的應用
  Front Page
  Dreamweaver
  記事本 …..



                       6
互動式網頁程式設計(2/4)

多媒體的應用
  Flase
  PhotoImpac …..
程式開發
   使用何種語言
     ASP
     PHP
     JAVA
     其他 (VB, JSP, Delphi,……)




                                7
互動式網頁程式設計(3/4)

資料庫規畫
  選用使用何種資料庫
    Access
    MS SQL
    Sybase
    Oracle
    My SQL ….
  正規化
  SQL 語法




                 8
互動式網頁程式設計(4/4)

系統維護
  程式更新 & 資料更新
  需求分析等資料的保存,有利於後續的維護
  程式註解
作業系統
  網站管理
  權限管理




                         9
內容管理系統 – CMS




               10
CMS 內容管理系統

可將相關內容集中儲存並具有群組管理、版本
 控制等功能。
版本控制是內容管理系統的一個主要優勢。
內容管理系統在物品、文案或資料的儲存、掌
 管、修訂、文檔釋出等方面有廣泛的應用。




                        11
常見 CMS 比較表
                                         WordPres           Joomla Drupal Plone
                                         s                  !
    裝置、架站的難度                                    4               4             4        2
    架一個單純網站的難度                                  4               3             3        2
    架設複雜網站的難度                                   4               4             3        3
    內容編輯使用難度                                    4               3             3        4
    網站管理的難度                                     4               3             3        3
    視覺化的彈性                                      4               4             4        4
    SEO                                         3               3             2        4
    結構的彈性                                       3               3             4        4
    使用者角色及流程管理                                  2               2             3        4
    社群 / web 2.0 功能                             4               3             4        3
    未來延展性及系統一致性                                 4               4             4        4
    安全性                                         2               3             3        4
    後續支援 / 社群的力量                                4               4             4
資料來源:2010 Comparing Open Source Content Management System: WordPress, Joomla, Drupal
                                                                                       4
and Plone http://www.idealware.org/reports/2010-os-cms                                     12
到底該用哪一個軟體架站?
 WordPress:
   簡單、好入手,會HTML及css可得心應手架站,主要是部落格及簡單頁
    面架站用。未來擴張彈性不及其他三個軟體。
 Joomla:
   架站不難,系統分為三種頁面:區塊、類別、文章,一但清楚,就可入
    手。Joomla彈性比WordPress大,卻不如Drupal、Plone。不易將內容以
    不同面貌呈現在不同頁面上。
 Drupal:
   強而有力又有彈性,也因而複雜。管理頁有許多選項,一定得想好才動
    手。Drupal的流程控制不如Plone。
 Plone:
   強有力、有彈性、強韌。適合非常複雜網站。裝置Plone很難,需要特定
    的主機,以Python語言編寫也不如其他三個軟體用PHP方便。



                                              13
DRUPAL 簡介




            14
DRUPAL 簡介
 Drupal, 水滴
 Drupal 是一套開放原始碼的內容管
  理系統( CMS ),以PHP為基礎,採
  用模組化的架構,可在一般作業系
  統上運行。
 目前使用Drupal的人總計超過50萬,
  遍及全球200多個國家,180多種語
  言,Drupal 7 的開發集結了近千名
  會員的心力,而貢獻模組的會員更
  有數千名,Drupal 7 可擴充的模組
  已有超過 850 個。



                         15
DRUPAL 的用途
 社群入口網站      內容管理
 公司網站        網誌
 企業內部網站      論壇
 電子商務平台      電子報
 討論型網站
              播客 (Podcast)
 數位典藏網站
              多媒體展示
 個人網誌
              檔案分享
 圖書館網站
              ….
…



                              16
DRUPAL 的特色 (1/2)

核心模組已涵蓋大多數應用之所需
以 node 為主的架構─簡單而富有彈性
彈性的分類機制
具文件版本管理功能
獨特的 Hook system─提高模組整合度
功能強大的 API─方便模組開發




                           17
DRUPAL 的特色 (2/2)

各式豐富好用的模組─CCK、Views…
可自定會員資料欄位
詳細的日誌記錄
程式、內容與版型獨立
權限控制、選單、區塊、搜尋、輸入過濾、快
 取、負載機制等




                        18
NODES

Drupal將每一個紀錄都視
 為一個Node(節點)
基本資料結構是相同的,
 擴展性高,使用者可以自
 行開發、添加資料,不用
 擔心資料類型是否相同。
任何一個節點都可以被放
 在首頁,發表,甚至運用
 在搜尋上面。


                  19
DRUPAL NODE 的概念




                  20
21
DRUPAL框架




           22
HOOKS

模組與模組之間的連結,稱為hooks(掛勾)
掛勾在Drupal當中是非常便利的,不論你是要
 下載並且使用Drupal的模組都需要透過hooks這
 一動作連結,一些功能是不需要自己下去寫程
 式只要透過少許的修改,就可以很方便的使用,
 你也可以自己客製化一個屬於自己的模組寫出
 來,並且掛勾使用。




                              23
BLOCKS

一個block就是一個資訊,建構在模組之上,可
 以啟用或禁用在任何一個模組。
一個block可以設置顯示任何類型的node,像是
 行程表,當前的使用者人數之類的訊息。




                             24
讓DRUPAL如虎添翼的模組
 CCK (Content Construction Kit)
    可依個別需求定義內容型態(node type)
    支援各式型態欄位
 Views
    可依個別需求建立資料庫的views
    支援網址參數及動態篩選
    提供頁面與區塊兩大呈現方式
 Panels
    可將多個內容、區塊或Views擺在同一個頁面的任何位置,
     非常適用於網站首頁




                                    25
用 DRUPAL 架設新網站




                 26
DRUPAL 新網站的規劃

內容類型(node type)規劃
分類(taxonomy)設計規劃
角色與權限規劃
區塊與選單規劃
選一個適用的版型風格再自行修改CSS
首頁設計(可利用panels模組)




                      27
版型修改與設計

修改版型CSS (通常為style.css)
修改版型樣板
  頁面樣板:page.tpl.php
  內容樣板:node.tpl.php
  區塊樣板:block.tpl.php
  首頁樣板:page-front.tpl.php
  回應樣板:comment.tpl.php
複寫版型函式(overriding theme func.)
  於template.php重新定義自己的版型函式




                                  28
更多可擴充的模組




           29
內容呈現客製

內容呈現客製方式
  直接以php語法在頁面或區塊內容撰寫程式
  利用CCK+Views或其他第三方模組
  自行開發模組




                          30
模組開發簡介

.info 檔案
   提供模組資訊
.install 檔案
   模組安裝/解除安裝使用
   通常用來建立資料表、移除資料等
.module 檔案
   主要的模組程式檔
   利用 hook system 完成模組程式架構




                              31
善用HOOK SYSTEM

Hook可想像成Drupal的內部事件,又稱為
 callbacks
客製模組時只須定義相關hook function,不必
 更改核心模組的程式碼
例如會員登入時,會觸發 user hook,所有的模
 組,只要有定義 user hook function,該
 function 均會被執行


           http://api.drupal.org/api/5/group/hooks


                                                     32
HOOK_MENU 範例

在選單
 Administer->Settings->Annotation settings
 就會出現 annotation 設定表單




                                             33
HOOK_MENU 範例




               34
HOOK_MENU 範例




               35
謝謝大家仔細聆聽!!!!
   Q&A




               36

內容管理系統 - Drupal入門