Revision of 什麼是 context from Tue, 2011-08-02 20:47

Context 模組的功能其實和區塊的顯示設定 (visibility) 很相似
就是 "根據某些條件" 顯示 "某些區塊"
例如, 在 "用戶頁面" 顯示 "用戶的資料區塊"
所以, 假如你發覺你的區塊設定變得很複雜而且維護很困難的時候
你便應該要使用 context 模組了

而我將 context 模組放到這麼前的版面是因為,
我覺得它已經成為了一個 Drupal 網站不可或缺的模組了
重要的程度比 panels 還高一點

介紹 context 的用法之前
需要先了解 context 模組的一些新詞彙:

Condition

就是條件, 例如 "所有用戶頁面", "全部頁面"
條件的選擇很多, 而且是多選, 其中一個條件乎合, 這個 context 就 "成立" 了
也可以 "Require all conditions", 全部條件乎合才成立
Menu - 頁面是菜單的項目之一
Context - 頁面乎合另一個 context
Node type - 頁面是一個內容類型
Taxonomy - 頁面是一個分類的頁面
Path - 指定一些路徑 (和 block visibility settings 一樣用法)
User Role - 使用者的角色
User page - 用戶頁面, 可以細分用戶設定頁面, 注冊頁面等
Views - 頁面是來自一個 views
Site wide context - 每一個頁面都乎合

Reaction

Reactions 是指條件乎合之後的動作
以區塊的例子來說, reactions 便是 blocks
你會看到你的 theme 有的 regions, 你可以點右面的 block
按左面 regions 的 "+ Add" 區塊便會移到 regions 之下了

其餘的 reactions 有:
Breadcrumb - 修改 breadcrumb
Debug - 顯示 context 除錯資訊
Theme - 設定增加 page.tpl.php 的三個自定變數
Menu - 設定菜單 active 的項目

Context
其實是指一個框架, 一個有條件的框架
Context 模組定義出這些有條件的框架
再根據框架的 Reactive 作出相對的動作

最後, 很方便的, Features 模組支持 context!

Google