使用 Drupal 的 Block、Views、Entity 與 Entity Reference 打造萬用網站架構

2025-04-30

標籤: 心得分享

廣告

Drupal 的彈性架構是它最大的特色,善用 Block、Views、Entity 與 Entity Reference,就能像組積木一樣建立幾乎任何形式的網站。

🔹 Entity:Drupal 世界的基本單位

在 Drupal 中,「Entity」是所有內容的基礎,包括:

  • Node:最常見的內容類型,例如文章、新聞、活動。
  • User:使用者帳號
  • Taxonomy Term:分類與標籤
  • FileMediaComment

📌 實例應用:

  • 「活動」是一個 Node Entity,裡面有標題、時間、地點、內容等欄位
  • 「地點」則是另一個 Content Type,可建立重複使用的地點資訊

🔹 Entity Reference:建立內容之間的關聯

Entity Reference 是 Drupal 非常強大的功能,允許你在一個內容中「參考」另一個 Entity。

📌 實例應用:

  • 在「活動」內容中,加入一個 Entity Reference 欄位,選取「地點」的節點
  • 在「商品」內容中,引用「品牌」或「分類」的 Taxonomy Term

✅ 優點:

  • 關聯資料標準化
  • 可透過 Views 拉出關聯內容
  • 實現資料模組化,避免重複輸入

🔹 Views:打造自訂資料列表與頁面

Views 模組是 Drupal 的精華,可以讓你把任意 Entity(Node、User、Taxonomy...)以列表、卡片、區塊等方式呈現出來。

📌 常見用途:

  • 最新文章列表
  • 特定分類的新聞區塊
  • 一週活動預告
  • 搜尋結果頁
  • 使用者貢獻內容清單

✅ 功能亮點:

  • 支援過濾、排序、關聯欄位輸出
  • 可輸出為頁面、區塊、RSS、JSON
  • 與 Entity Reference 整合可實現複雜關聯查詢

🔹 Blocks:靈活配置內容區塊

Drupal 的 Block 系統允許你把 Views 或自訂 HTML 插入到網站的各種區域(如側欄、頁尾、主內容上方等)。

📌 實例應用:

  • 在首頁右側放置「最新消息」Views 區塊
  • 在文章頁的下方,顯示「同分類文章」區塊
  • 根據角色顯示不同的引導訊息(可使用 Context 或 Block Visibility 設定)

🏗️ 綜合應用:模組化站台設計範例

類型 範例 用到的功能
新聞網站 各類新聞列表、首頁精選 Views + Blocks + Taxonomy
教學網站 課程內容引用老師、教材 Entity Reference + Views
活動網站 活動與地點關聯 Entity + Entity Reference + Views
商品型錄 商品與品牌分類 Entity + Taxonomy + Views
地方導覽 景點 + 地圖 + 活動 Node + Entity Reference + Views + Leaflet

✅ 小結:Drupal 架站的彈性來自於結構化資料與模組式顯示

Drupal 並不是一個一裝就能用的 CMS,而是一個可以自由定義資料結構、顯示方式的「網站建構框架」。你可以透過:

  • Entity 定義內容
  • Entity Reference 建立資料關聯
  • Views 整合與輸出資料
  • Blocks 靈活插入各頁面

這些核心功能,讓你可以打造出任何一種網站架構,既彈性又可擴充。


廣告