Revision of Rules 7.x 模組 201「當一內容設為 sticky 的時候, 站內其他的內容都設為 非 sticky」 from Wed, 2012-03-07 17:45

首先介紹這個教學會用到的另一個強力模組: Views Bulk Operations
Views bulk operation (VBO) 是在 Drupal 6.x 的時候已經是很好用的模組
可以一次性為大量節點設定值
例如設為 unpublish, 批量賦與欄位值, 加減 tag 之類

VBO 在 7.x 的重大改變是它變成一個欄位
不再是一個獨立的 "Display"
可以想像, 建立一個 table, 再在前頭加一個 checkbox 欄位
table 的上方放一個 actions 的下拉選單

因為 views 是不支持 Rules 內的 "List" 的
所以便借用 VBO 的 "Load a list of entity objects from a VBO View."
將 "list of nodes" 傳到 rules 之內
所以, 相同原則之下, 你可以使用 node smart queue 逹成同樣的效果
VBO 只是一個例子而已

在建立了一個 sticky nodes 的 views,
將 VBO 的欄位加到這個 views 之後,
你便可以在 Rules 的action 內 "Load a list of entity objects from a VBO view"

選需要的 views:

如果你的 views 需要 arguments/contextual filters 你可以在接著輸入
例如傳入將要儲存的 node 的 taxonomy 以逹成更複雜的 sticky 條件等等

最下的 Provided Variables 是之後如何稱呼這 list 的
輸入 "list of sticky nodes" 為 Label, Name: list_of_sticky_nodes
就可以按 save 便設定完 VBO 和 list 的部份了

接下來便要對這個 list 的每一個節點進行 unsticky 的操作
按 "Add Loop", Data selector 選前面輸入的 "list of sticky nodes"
下面設定稱呼 單個節點 時候的 label, name

接著在 loop 的右面可以新增 loop 內的 actions:

"Make content unsticky", Data selector 選 單個節點 的 label
最後為這個 action 加一個顯示訊息以提示使用者有關的修改便完成了

AttachmentSize
Image icon vbo.PNG6.96 KB
Image icon load-views-object.PNG12.88 KB
Image icon views-dropdown.PNG11.38 KB
Image icon loop-add-action.PNG11.63 KB
Google