Technologie i narzędzia: język PHP 5, Java, JavaScript, Python, system Zend Framework, Django, biblioteka jQuery, Smarty, platforma Eclipse, MySQL, SVN, CVS, UML, Firefox.
WebProgramming - wszystko o serwisach internetowych
O serwisach internetowych.
[php|zend] Przykłady dla biblioteki Fasic_Mail + nowa wersja biblioteki.
Dwa miesiące temu przedstawiłem system szablonów e-maili oraz najprostszy przykład jego użycia. Tym razem chciałbym podać bardziej zaawansowane przykłady (niektóre z nich były już wspomniane) wraz z kodem źródłowym, w tym: obsługa wielu managerów, wielojęzyczność, treść e-maili w formacie HTML i obsługa załączników.
Zaznaczam, iż dalsza część jest dla osób, które przeczytały pierwszy artykuł na ten temat - jeżeli tego nie uczyniłeś zapraszam do lektury “[php|zend] Szablony e-maili.“.
Obsługa wielu managerów.
Biblioteka Fasic_Mail umożliwia korzystanie z kilku managerów (źródeł) w aplikacji, w następujący sposób:
-
// Inicjalizacja biblioteki
-
Fasic_Mail_Template::setDefault(‘xml’, // Typ managera
-
);
-
// lub
-
Fasic_Mail_Template::setDefault($managerXml);
-
// jeżeli $managerXml jest obiektem klasy Fasic_Mail_Template_Xml
-
-
Fasic_Mail_Template::addManager(‘test’, // Klucz dla managera
-
);
-
// lub
-
Fasic_Mail_Template::addManager(‘test’, $managerXml);
-
// jeżeli $managerXml jest obiektem klasy Fasic_Mail_Template_Xml
-
-
// Użycie biblioteki
-
// Odwołanie się do domyślnego managera
-
$mgr = Fasic_Mail_Template::manager();
-
// Odwołanie się do managera "test"
-
$mgr = Fasic_Mail_Template::manager(‘test’);
Dzięki temu możemy pobierać szablony e-maili na przykład z dwóch różnych katalogów (lub też z całkowicie innego źródła danych).
Wielojęzyczność.
Niektóre klasy managera (w tym również manager XML) umożliwiają podanie kategorii, z której dany szablon jest pobierany. Nazwę kategorii podaje się jako drugi argument metody mail:
-
$mgr = Fasic_Mail_Template::manager();
-
$mailPl = $mgr->mail(‘test’); // Załadowanie z pliku "/mails/test.xml"
-
$mailEn = $mgr->mail(‘test’, ‘en’); // Załadowanie z pliku "/mails/en/test.xml"
Umożliwia to między innymi na stworzenie kilku wersji językowych tego samego szablonu e-mail.
Zaawansowany szablon XML.
Poniżej przedstawiłem bardziej zaawansowany szablon, który jest obsługiwany przez bibliotekę Fasic_Mail:
-
<?xml version="1.0" encoding="UTF-8"?>
-
<email>
-
<subject> [Zend Framework] Testowanie biblioteki Fasic_Mail </subject>
-
<from name="Jezyk PHP" email="php@webprogramming.pl" />
-
<to name="Simon"> szymon@webprogramming.pl </to>
-
<body>
-
<text>
-
Treść w plain text, :parametr.
-
</text>
-
<html>
-
<![CDATA[
-
Treść w formacie <b>html</b> :parametr.
-
]]>
-
</html>
-
</body>
-
<attachments>
-
<attachment file="attach.jpg" encoding="8bit" />
-
</attachments>
-
<params>
-
<param name="parametr" default="" />
-
</params>
-
</email>
W przypadku tagu attachment możemy podać dodatkowe atrybuty takie same jakie parametry przyjmuje obiekt klasy Zend_Mime_Part (czyli na przykład: type, disposition, encoding, charset, description, filename).
Biblioteka Fasic_Mail_Template (najnowsza wersja):
- Źródła: http://webprogramming.pl/downloads/Fasic_Mail-1.0.zip
- Wersja: 1.0
- Data edycji: 5 grudnia 2008 (nowa wersja dodawania managerów, drobne poprawki)
- Instalacja: skopiować do katalogu Fasic, który jest w ścieżce poszukiwań skryptów PHP (w tym samym katalogu, w którym jest katalog Zend)
- Zależności: korzysta z bioblioteki Zend_Mail
Napisz komentarz