使用 Drupal 的 Block、Views、Entity 與 Entity Reference 打造萬用網站架構
2025-04-30
標籤: 心得分享
廣告
Drupal 的彈性架構是它最大的特色,善用 Block、Views、Entity 與 Entity Reference,就能像組積木一樣建立幾乎任何形式的網站。
🔹 Entity:Drupal 世界的基本單位
在 Drupal 中,「Entity」是所有內容的基礎,包括:
- Node:最常見的內容類型,例如文章、新聞、活動。
- User:使用者帳號
- Taxonomy Term:分類與標籤
- File、Media、Comment 等
📌 實例應用:
- 「活動」是一個 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 靈活插入各頁面
這些核心功能,讓你可以打造出任何一種網站架構,既彈性又可擴充。