Jak poslat email autorovi nodu po odeslání formuláře (Webform)
V tomto návodu vám ukážu jak poslat email autorovi nodu po odeslání formuláře pomocí modulů Webform + Token. Ukážu to na příkladu „když návštěvník odešle webformový blok, pošli email s nadpisem a URL adresou nodu jeho autorovi.“
Pro netrpělivé
Toto je jádro: Aplikujte tuto záplatu na modul Token a použijte token [current-page:node:author:mail] jako „adresa příjemce zprávy“.
POZNÁMKA: Tento článek jsem překládal z originálu v angličtině, proto se názvy prvků mohou od těch českých nebo slovenských lišit.
Potřebné moduly na to aby to šlo
Pro požadovanou funkcionalitu budeme potřebovat poslední stabilní verzi modulů Webform, Token, Chaos tool suite a Views (vše základní věci).
Začněme
1. Nejdříve opravíme modul Token s tímto kódem (pokud již byla záplata zahrnuta do jádra modulu, tento krok není aktuální)
POZNÁMKA: Aplikovat záplatu je skutečně jednoduché, můj nejoblíbenější způsob je udělat to ručně. Zde je pár videí jak na to.
2. Vytvoříme nový formulář. V záložce „Složky formuláře“ vybereme základny prvky, hlavně e-mail (typ: e-mail, požadované) a textové pole (textarea, požadované)
3. V záložce „E-maily“ začíná trik. Použijte token [current-page:node:author:mail] a klikněte na tlačítko „Přidat“. Později vám tento token vysvětlím.
4. S tokenem [current-page:title] můžete vylepšit předmět zprávy. Odeslán email bude obsahovat nadpis (titulek) současné stránky (stránky, ze které se odeslal formulář).
Jako „E-mailovou adresu odesílatele“ použijte adresu svázanou s doménou stránky, jinak většina poskytovatelů poštovních schránek bude považovat vaši zprávu za SPAM. Nepoužívejte složku „odeslán e-mail“. Jako hodnotu „jméno odesílatele“ použijte např. název stránky.
5. Vylaďte tělo zprávy. Pod cestou „Zobrazit dostupné tokeny> současná stránka“ je k dispozici ještě jeden „očividný“ token (vedle [current-page:title], o kterém jsem již psal). Je to [current-page:url].
Proč jsem napsal „očividný“? Protože je tu ještě „divný“ token s názvem [current-page:query:?] (v mé verzi modulu, v budoucnu se to může změnit). Tento token dělá hlavní trik: zpracuje email autora současného nodu. Moje část „query:?“ je „node:author:mail“.
Tento „divný“ token může vytáhnout každé pole ze současného uzlu a vložit jej do zprávy. Například token pro datum přidání současného uzlu bude vypadat jako:
[current-page:query:?] + [node:created] = [current-page:node:created]
Bonus: Reply-to vylepšení
Jak jsem psal, nepoužívejte hodnotu odeslanou uživatelům do kolonky „emailová adresa odesílatele“. Velký poskytovatelé Inboxu (Gmail) to označí jako spam. Většina hostingových společností vám to i tak nedovolí udělat (hostingy nemají právo odesílat elektronickou poštu jménem domén, které nespravují). Někteří tvůrci stránek na Drupalu, se diví proč se jejich emaily nedoručují – tak přesně pro toto.
Ale vzniká problém. Kdy příjemce zprávy (autor současného uzlu) klikne na tlačítko „odpovědět na zprávu“, zpráva bude doručena na naši „noreply@example.com“, ne uživateli, který odeslal formulář.
Je nějaké řešení? Je – modul se jmenuje „Webform Reply To“ a specifikuje „Reply-To“ (odpověz na) detail v hlavičce emailu (zvolte složku „email odeslán uživatelem“).
6. Uložte nastavení a klikněte na záložku „Nastavení formuláře“, pod „Pokročilé nastavení“ zaškrtněte „Dostupný jako blok“ a uložte. Nyní bude možné s formulářem pracovat jako s blokem.
7. Jděte do „Struktura> Bloky“ a nastavte nový webformulárový blok.
Já jsem umístil ten můj do oblasti „Obsah“ a zapnul pouze pod typem uzlů „Fotka“.
Také nezapomeňte určit zakázané stránky. Použijte „node / * / * “ (bez mezer) aby se předešlo zobrazování bloku i na stránkách node/*/edit a node/*/delete. Po dokončení uložte nastavení.
8. Hotovo! Takto bude vypadat formulář pod zapnutým typem uzlu. Nadpis uzlu je „Sample photo“.
Takto vypadá obsah odeslaného formuláře ve schránce autora současného uzlu.
Demo
Dogva.com – v každém profilu chovatelské stanice je formulář na kontaktování chovatele (autora uzlu).
Závěr
Webform je skvělý, chytrý modul. Nyní víte jak odesílat email autorovi nodu. Každý veřejný formulář tohoto typu však potřebuje ochranu proti spamu. Na ochranu modulu Webform se v CMS Drupal běžně používá modul Captcha, který ale znefunkční cachování stránek, na kterých je zapnutý. Jak se vypořádat s tímto problémem vám prozradím v dalším blogu.
Příloha | Velikost |
---|---|
webform-contact-author.jpg | 31.22 KB |
webform-contact-author-block-settings.jpg | 38.19 KB |
webform-contact-author-block-settings-pages.jpg | 43.3 KB |
webform-contact-author-components.jpg | 35.72 KB |
webform-contact-author-email-blocks.jpg | 13.23 KB |
webform-contact-author-email-reply-to.jpg | 37.8 KB |
webform-contact-author-emails.jpg | 31.39 KB |
webform-contact-author-emails-block.jpg | 31.53 KB |
webform-contact-author-email-to.jpg | 84.14 KB |
webform-contact-author-gmail.jpg | 42.29 KB |
webform-contact-author-template.jpg | 97.93 KB |
Luka tersiram Air Panas