używam moduł autorespondera Drupal - i chcę użyć tokeny więc mogę zawierać nazwę użytkownika, który wniósł w ramach e-maili wysyłanych ...Drupal Autoresponder z Reklamowe Module
Czy ktoś wie jak to może być osiągnąć?
Dzięki za pomoc.
Shane
używam moduł autorespondera Drupal - i chcę użyć tokeny więc mogę zawierać nazwę użytkownika, który wniósł w ramach e-maili wysyłanych ...Drupal Autoresponder z Reklamowe Module
Czy ktoś wie jak to może być osiągnąć?
Dzięki za pomoc.
Shane
Dzięki za odpowiedź - że był bardzo blisko ....
Moduł autoresponder UID nie jest związany z UID użytkownika tak Twój kod został przynosząc inną nazwą użytkownika ... Więc zmieniłem go znaleźć zamiast tego użytkownik z adresu e-mail.
// 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);
Tak, rzeczywiście, ja przedstawić go jako patch do mojego inny wniosek, i mam nadzieję, że może to pomóc komuś innemu.
Wiele Dzięki
Shane
EDIT po oddzielnym odpowiedzi przez OP:, co następuje w oparciu o założenie, że $u->uid
odnosi się do „standardowej” Drupal identyfikator użytkownika, który nie jest poprawny! Więc trzeba znaleźć odpowiedni Drupal użytkownika za pomocą innych środków, jeśli to możliwe - patrz the OPs answer for details w tej sprawie ...
nie testowałem, ale patrząc na kodzie źródłowym autoresponder, powinieneś być w stanie dodać (użytkownika) token wymiany w funkcji autoresponder_mail()
przez wstawienie następującego kod przed wytwarzania korpusu tekstowym (przed linią 392 na uwalnianie 6.x-1,0-alfa1):
// load the full user object
$user = user_load($u->uid);
// Replace user tokens in mail body
$mail->body = token_replace($mail->body, 'user', $user);
Alternatywnie, możesz zrobić to jednym wywołaniem funkcji wcześniej w autoresponder_cron()
, wewnątrz pętli while ($message db_fetch_object($result_messages))
, przed wywołaniem if (autoresponder_mail($u, $message))
(linia 366), przy użyciu $ wiadomość zamiast $ 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);
W przypadku, gdy działa, to może chcieć przesłać go jako plaster to the already existing feature request for this. (Domyślam się, że jesteś "keyzo"/"shane", który już tam odpowiedział;)
Jeśli to działa i masz zamiar stworzyć łatkę, byłoby to "standardową" praktyką, aby dodać podpowiedź na temat możliwej wymiany tokena do formularza (ów) definicji wiadomości w autoresponder_mail_edit_create_form()
.
+1 do obserwacji - nie patrzeć na schemacie i po prostu przyjął „standard” Wykorzystanie UID:/ –
Na pytanie/uwaga, chociaż: są anonimowi użytkownicy dozwolone również subskrybować? Byłby to dobry powód oddzielnej tabeli "autoresponder_users", a to oznaczałoby, że musiałbyś dodać czek do "wyszukiwania użytkownika przez pocztę" na wypadek, gdyby nie znaleziono odpowiedniego użytkownika Drupala. ("user_load()" zwróci FAŁSZ w takim przypadku.) –
Cześć Henrik, Tak, doceniam schemat - wskazałeś mi jednak właściwy kierunek :-) Doceniam twoją opinię na temat anonimowych użytkowników - ale ja "Myślałem, że tak, więc tylko dla użytkowników posiadających konto, dobre myślenie! Dzięki za pomoc. Shane – Shane