- január 2012 (1)
- július 2011 (1)
- május 2011 (1)
- február 2011 (1)
- január 2011 (3)
- december 2010 (2)
- november 2010 (2)
- október 2010 (3)
- szeptember 2010 (2)
- július 2009 (1)
- 1 / 2
- ››
Egyik ügyfelünknél felmerült az igény, hogy egy form kitöltése után automatikusan küldjünk ki egy email-t csatolmánnyal együtt.
A probléma megoldására a régebbről ismert HtmlMimeMail PHP osztályt használtam.
Nagyon jól megszerkesztett osztály úgyhogy nagyon könnyű használni, ám Drupal alatt mégsem lehetett alkalmazni a leírásban olvastakat.
Az első problémát az jelentette, hogy nem lehetett az osztályt beilleszteni, illetve objektumot készíteni belőle. Egyszerűen kifagyott tőle a Drupal és fehér képernyő jelent meg. Szerencsére van olyan verziója is, amitől nem jelentkezik ez a probléma.
Innen telölthető zip-el tömörítve (20 KB): HtmlMimeMail Drupal.
Miután ez megoldódott nagyjából a HtmlMimeMail oldalán található leírásokat kellett alkalmazni néhány dolgot kivéve.
Először egy ellenőrzés arról, hogy nem-e létezik már az osztály:
if (!class_exists('htmlMimeMail') && !class_exists('Mail_mimePart')) { require_once(dirname(__FILE__)."/htmlmimemail/htmlMimeMail.php"); }
$mail = new htmlMimeMail();
$mail->setTextCharset('UTF-8');
$mail->setHtmlCharset('UTF-8');
$mail->setHeadCharset('UTF-8');
Sokszor felmerül a kérdés, hogy lehet a form mezőinek kitöltöttségét egyszerűen és újrahasznosíthatóan megírni.
Erre egy nagyon jó megoldást ad a jQuery JavaScript könyvtár.
A lényeg az, hogy egy kód megírásával lehessen ellenőrizni az oldalon található összes form kötelező mezőinek kitöltöttségét, függetlenül attól, hogy mely formnak hány kötelező mezője van.
Ehez fontos, hogy a form-okat a megfelőle stratégia szerint építsük fel...a lényeg a helyes osztályok használata. Ha a megfelelő input mezőket a megfelelő osztályokba soroljuk, akkor a megoldás néhány sor JS-el megoldható, és el lehet sütni akármikor a jövőben is.
Néhány napja az egyik ügyfelünknek kellett elkészítenem egy site részletet, ahol az oldalak összességét tekintve, kb. 20 formot kellett elhelyezni, namost ez sok, és ha mindet a szabványos JS módszerekkel próbáltam volna ellenőrizni (a mezőket ID alapján lekérdezem és ellenőrzöm, hogy ki van-e töltve), akkor sok kódot kellett volna írni, valamint a hibalehetőség is nagy. Ahol nagy a hibalehetőség azt minimum tízszer annyi idő tesztelni, mint egy megfelően elkészített form ellenőrzést.
Vegyünk egy egyszerű példát egy négy mezőböl álló form-ra, melynek három kötelező mezője, amiből az egyik email, tehát az email cím valósságát is ellenőrizni kell.
A form a következő képp néz ki:
<div class="form"> Ide jöhet a form bevezető szövege <form class="feliratkozo-form" action="#" method="post"> <div style="display: block; width: 70%; margin: 0 auto;"> <div class="form-row" style="clear: left;"> <label style="float: left; clear: left;" for="lastname">Vezetéknév</label> <input id="lastname" class="register-input-narrow kotelezo" name="mssys_lastname" type="text" /></div> <div class="form-row" style="clear: left;"> <label style="float: left; clear: left;" for="firstname">Keresztnév</label>