Я использую модуль автореспондента Drupal - и я хочу использовать маркеры, таким образом, я могу включать имя пользователя, кто подписался в рамках посланных электронных писем...
Кто-либо знает, как это может быть достигнуто?
Спасибо за любую справку.
Shane
Спасибо за это - ваш ответ был очень близок....
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);
Да, действительно, я отправлю это как патч к моему другому запросу, и надеюсь, это может помочь кому-то еще.
Many Thanks
Shane
ИЗМЕНИТЬ после отдельного ответа OP: Следующее было основано на предположении, что $ u-> uid
относится к «стандартному» идентификатору пользователя Drupal, что неверно! Таким образом, нужно найти соответствующего пользователя Drupal другими способами, если это возможно - см. ответ OP для подробностей по этому поводу ...
Я не тестировал его, но смотрю на автоответчик исходный код, вы должны иметь возможность добавить замену (пользовательского) токена в функцию autoresponder_mail ()
, вставив следующий код перед подготовкой текстового тела (перед строкой 392 в 6.x-1.0 -alpha1 release):
// load the full user object
$user = user_load($u->uid);
// Replace user tokens in mail body
$mail->body = token_replace($mail->body, 'user', $user);
В качестве альтернативы вы можете сделать это одним вызовом функции ранее в autoresponder_cron ()
, в while ($ message db_fetch_object ($ result_messages))
перед вызовом if (autoresponder_mail ($ u, $ message))
(строка 366) с использованием $ message вместо $ 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 ()
.