需求在發表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 的一個訣竅:如果要在
這個問題主要是使用 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 把信寄到正確的地址了。
自問自答一下,有一個比較笨的解法,使用 https:/
自問自答一下,有一個比較笨的解法,使用 https://www.drupal.org/project/realname 模組,直接把所有的 username 顯示都變成email
目前已測試成功,不過大家的ID都是顯示e-mail
tky提示的方法我有空再來測看看~ 謝謝
總算搞定啦~