您在這裡

建立內容時,同時通知特定使用者有文章的功能設定詢問

liaozi's 的頭像
liaozi 在 2017-12-06 (三) 12:51 發表

需求在發表node時,可以通知特定的使用者

本來想說應該有模組可以用,但翻了一下Google好像沒有 (還是我沒找到?)

於是我就參考這篇
https://groups.drupal.org/node/94674

安裝 Entity reference

在node中加入一個可以選user的reference欄位

然後再寫rules針對該欄位的人寄件

但我目前遇到一個問題

rules根據reference寄信的值,是user name,不是user mail,導致寄件失敗
(我的規則有寫成功,因為我有收到退信,系統寄 user name被打槍 XD )

後來我有再設定views把user的e-mail值撈給reference

但email的值只會在編輯node時出現,實際頁面出現的值還是user name

不曉得reference views的值,有沒有辦法在實際內容呈現?

這個問題主要是使用 rules 的一個訣竅:如果要在 action 時使用一個特定欄位的相關 token,需要在 condition 那邊先使用一次該欄位。

比方說,你要設定一個 action 是「寄發 email 給 [user-reference] 欄位所指定的 user 」。如果你直接去新增一個這樣的 action,那在收件人欄位那邊,會找不到像 [user-reference]:mail 這樣的 token 可以用。

要獲得可用的 token 作為變數,你必須在 condition 的部份,先以某種方式使用[user-reference] 這個欄位,比方說「檢查」該內容類型是否具有該欄位。據此,你就要設定一個 condition 像是 "Entity has field" 的條件, 然後指定必須要有[user-reference] 欄位。(這看來有點多此一舉,不過是有用處的)

做了這件事之後,你就會發現,在 action 那邊的「收件人」項目裡的可用 token 會多出許多內容。選擇 [user-reference]:mail 就可以讓 rules 把信寄到正確的地址了。

tky