Автореспондент Drupal с маркерным модулем

Я использую модуль автореспондента Drupal - и я хочу использовать маркеры, таким образом, я могу включать имя пользователя, кто подписался в рамках посланных электронных писем...

Кто-либо знает, как это может быть достигнуто?

Спасибо за любую справку.

Shane

5
задан Gary Willoughby 13 June 2010 в 16:40
поделиться

2 ответа

Спасибо за это - ваш ответ был очень близок....

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

4
ответ дан 14 December 2019 в 08:42
поделиться

ИЗМЕНИТЬ после отдельного ответа 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 () .

3
ответ дан 14 December 2019 в 08:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: