Tegnap került be a leendő Drupal 4.8 forráskódjába az általam javasolt hook_mail_alter()
hurok, és egyben a Drupal email küldés is egy kicsit barátságosabbá vált. Az ötlet a Freeweb-bel kapcsolatos Drupal beállítási kalandok mentén merült fel, de időközben kiderült, hogy számos praktikus felhasználása lehet.
A hook_mail_alter()
lehetővé teszi, hogy a Drupal által küldött levelek tartalmát és fejléceit tetszőleges módon átírhassuk. Néhány lehetséges felhasználása:
- Egységes webhelyre jellemző láblécet tehetünk minden elküldött levél aljára.
- Felcserélhetjük a felhasználó által beírt és a rendszer által kitöltött tartalom sorrendjét a contact modul kapcsolat űrlapja által küldött levelekben. Ez az igény a Weblaboron merült fel.
- Új fejléc sorokat vehetünk fel a levelekhez. A Freeweb-en például követelmény, hogy egy kódot tegyünk a fejlécekbe, ezzel igazolva magunkat a Freeweb felé.
- Csatolmányos levélküldést valósíthatunk meg. A
hook_form_alter()
-rel kombinálva például a kapcsolat űrlapunkat felvértezhetjük fájl feltöltés lehetőséggel, majd a feltöltött fájlt a megfelelő kódolással a levélbe helyezhetjük. - Ha mindenképpen erre vágyunk, akkor teljesen HTML-esíthetjük a Drupal által küldött leveleket, HTML szűrésen átengedve a szöveges tartalmat, a cégünkre jellemző logót, láblécet elhelyezve a levélben.
Egyszerű példaként álljon itt egy Freeweb támogató függvény, mely a Freeweb telepítési javaslatnál leírt módosítást szükségtelenné teszi majd a 4.8-as Drupal verzió használatakor.
function freeweb_mail_alter($mailkey, $to, $subject, $body, $from, &$headers) { $headers['X-FW-MailID'] = 'itt kell megadni az FW mail azonosítót'; }
Mivel referenciaként vesszük át a fejléceket, átírhatjuk a tartalmukat. Az új fejléc elemet felvéve minden drupal_mail()
hívással az általunk beállított fejléc is szerepelni fog a küldött levélben.
Hozzászólások
+1
ilyen hook_*_alter() lesz még vmi?
hook_link_alter()
Szintén 4.8-as újdonság a hook_link_alter() ami a node és comment linkek módosítására használható majd. Bővebben a Converting 4.7 modules to 4.8 oldalon, ami folyamatosan bővül, ahogy kerülnek be a változások.