簡體   English   中英

具有令牌模塊的Drupal自動回復器

[英]Drupal Autoresponder with Token Module

我正在使用Drupal自動回復模塊 - 我想使用令牌,所以我可以包含在發送的電子郵件中訂閱的用戶名...

有誰知道如何實現這一目標?

謝謝你的幫助。

巴蒂爾

謝謝你 - 你的答案非常接近....

自動回復模塊UID與用戶UID無關,因此您的代碼引入了不同的用戶名...所以我將其更改為從電子郵件地址中找到用戶。

// load the full user object
$user = user_load(array('mail' => $u->mail));
// Replace user tokens in mail body
$mail->body = token_replace($mail->body, 'user', $user);

確實如此,我會將其作為補丁提交給我的其他請求,希望它可以幫助其他人。

非常感謝

巴蒂爾

在OP單獨回答后編輯:以下是基於$u->uid引用'標准'Drupal用戶ID的假設, 這是不正確的! 因此,如果可能的話,必須通過其他方式找到相應的Drupal用戶 - 有關詳細信息 ,請參閱OP答案 ...


我沒有測試它,但是看一下自動回復源代碼,你應該能夠在autoresponder_mail()函數中添加(用戶)令牌替換,方法是在准備純文本正文之前插入以下代碼(在第392行之前) 6.x-1.0-alpha1發布):

// load the full user object
$user = user_load($u->uid);
// Replace user tokens in mail body
$mail->body = token_replace($mail->body, 'user', $user);

或者 ,您可以在if (autoresponder_mail($u, $message))調用(第366行)之前的while ($message db_fetch_object($result_messages))循環中,在autoresponder_cron()之前執行一次函數調用,使用$消息而不是$ mail:

// load the full user object
$user = user_load($u->uid);
// Replace user tokens in mail body
$message->body = token_replace($message->body, 'user', $user);

如果這有效,您可能希望將其作為補丁提交給現有的功能請求 (我猜你是已經回答過的'keyzo'/'shane';)

如果它有效並且您要創建補丁,那么將可能的令牌替換的提示添加到autoresponder_mail_edit_create_form()的消息定義表單將是“標准”實踐。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM