Rules 模組在 6.x 的時代功能上已經很強大
但使用者介面一直很不友善,
rules rule set, actions, trigger, workflow, workflow-ng 等等使人很眼花撩亂
令很多使用者, 甚至開發人員, 包括我, 對 rules 模組卻步
情願自建模組, 編寫代碼, 使用方便的 hooks 完成用戶需求
例如, node 有一個電郵欄位, 每一次 save 的時候都送出一封電郵到 node 的電郵欄位
便可以使用 hook_nodeapi() (D6)
而在 7.x 中, rules 模組的使用者介面得到很大的改善
一般的使用者也可以使用
進階的 AND OR 邏輯也只需要簡單的學習就可以了
直接令自建模組的機會大大減少, 例如下圖:
Events 是「啓動類型」, 直接影響有什麼 Conditions 可用, 類似 hooks
node 儲存, 檢視, comment 儲存, 檢視, 執行 cron, 新用戶, 用戶登入等等都是 hook 變化出來的
Events 也會決定可以使用的 Conditions 和 Actions,
例如用戶登入 event 便會有 "用戶 role", "用戶上一次登入時間" 等,
node 儲存 便會有 "node author", "node 欄位值" 等等
Conditions 是條件,
"用戶 role 是管理人員", "node email 欄位值非空" 等等都是例子
Conditions 還可以添加 AND OR 邏輯
例如 ( "用戶 role 是管理人員" OR "用戶 role 是編輯" ) AND "用戶 department 欄位是 巿場推廣部"
留意括號的使用和 AND OR 的混合使用
Actions 是動作,
"發送電郵", "修改為未發佈", "修改欄位值為 x", "顯示訊息" 都是 actions
Actions 內可以使用 tokens 來客製動作
例如 "發送電郵" 中, 你可以設定電郵的 Subject 為: [node-title] 來自 [site-name]
Rules 便會替換 token 為 Events 的 "data"
使 Rules 的功能更加完整, 完備
Step1
開始先到Rules 下載, 啓用 Rules 7.x
Rules 的設定頁可以在 Configuration 內的 workflow 看到 rules 的列表 (全新安裝應該都是空白項)
按 "Add new rule" 的連結新增你的第一個 Rules
Step2
你需要輸入 Name, Tags 和 Event
Name 可以使用英數和空格, 應盡可能使用精準的 name,
例如 "Email notice when article being saved", "Publish articles on cron run" 等等
測試時也不建議使用 "test" 等命名, 先假設一個用戶需求會比較容易學習
Event 則需要選一個合適的類型, 雖然還可以修改, 但正確的類型可以避免出現不合情理的 Conditions 和 Events
Step3
第三步便會出現Events, Conditions 和 Actions 三個控制區域
你的第一個 rule 便正式成立了
Step4
接下來會分三篇遂一介紹 Events, Conditions 和 Actions 的詳細操作
Rules 7.x 模組 101 - Events
Attachment | Size |
---|---|
rules101-overview.PNG | 15.15 KB |
rules101-new-rule.PNG | 7.96 KB |
rules101-new-rule-overview.PNG | 8.61 KB |
rules101-rules-index.PNG | 7.95 KB |