= Szablony wiadomości email = System eDokumenty posiada mechanizm umożliwiający wykorzystanie szablonów HTML/Flexy dla wysyłanych wiadomości email. == Jak to działa == Mechanizm szablonów dla wiadomości email funkcjonuje w oparciu o bibliotekę Flexy. Umożliwia on wykorzystanie podczas tworzenia wiadomości wybranego, przygotowanego wcześniej szablonu - przypisanego do danego konta pocztowego (domyślnie), bądź wybranego ręcznie na formularzu wiadomości email. Szablon to w zasadzie plik HTML/Flexy zawierający dowolne elementy (np. tabele, obrazki), style (np. tło, rodzaj i wielkość czcionki, itd.) oraz predefiniowane zmienne. Jeśli podczas tworzenia wiadomości (rys. 1), na formularzu dokonana zostanie zmiana konta, z którego wiadomość zostanie wysłana, bądź bezpośrednio wybrany zostanie jeden z dostępnych szablonów, treść wiadomości zostanie przeładowana z zastosowaniem właściwego szablonu zachowując prawidłową stopkę, cytowaną wiadomość (np. dla odpowiedzi, podczas przekazywania wiadomości), oraz wprowadzoną treść. [[Image(wiki:UserGuideV5/Attachments:szablon_email_01.png, 620)]][[BR]] ''Rys 1''[[BR]] == Tworzenie nowego szablonu == Wszystkie pliki z szablonami dla wiadomości email powinny mieć rozszerzenie '''.tpl''' i znajdować się w katalogu '''public_html/apps/edokumenty/var/tpl/emails/'''. Pliki muszą być zapisane w kodowaniu UTF-8. W systemie eDokumenty szablony są identyfikowane nazwami plików z obciętym rozszerzeniem (np. plik ''nowy_szablon.tpl'' będzie wyświetlany na liście wyboru szablonu pod nazwą ''nowy_szablon''). Szablony są parsowane przez silnik Flexy (więcej o Flexy przeczytasz [http://support.edokumenty.eu/trac/wiki/DeployerGuide/Others/WorkingWithFlexy tutaj]), a ich wynikowa zawartość traktowana jest jako HTML. W szablonach można wykorzystywać także predefiniowane zmienne, których wartość jest generowana automatycznie w zależności od kontekstu użycia szablonu: {{{ text - treść wiadomości wprowadzona przez użytkownika footer - stopka wiadomości, właściwa dla danego konta, bądź użytkownika jeśli stopka dla konta nie została określona quoted - treść cytowanej wiadomości wraz z nagłówkiem - w przypadku tworzenia odpowiedzi lub przekazywania wiadomości }}} W każdej wersji systemu eDokumenty instalowany jest domyślnie wykorzystywany szablon o nazwie ''default''. Nie jest zalecana modyfikacja tego pliku, ani jego usuwanie. Domyślny szablon jest używany w przypadku braku możliwości użycia szablonu oczekiwanego w danym kontekście (np. brak właściwego pliku, brak uprawnień do pliku). Zmiany powinny być wprowadzane na zasadzie dodawania nowych szablonów. Możliwe jest wskazanie innego szablonu domyślnego poprzez modyfikację stałej EMAIL_DEFAULT_TEMPLATE w pliku konfiguracyjnym config.inc: {{{ define('EMAIL_DEFAULT_TEMPLATE', 'default'); }}} Warto pamiętać o dodaniu treści w tabeli o następujących parametrach tabeli: ....
Jest pewnym, że granice tabeli nie będą widoczne podczas wysyłania e-maili. == Linkowanie grafiki == W szablonie można oczywiście umieszczać elementy graficzne (tag IMG) bądź też określać w definicji stylów obrazy wykorzystywane jako tło. Należy jednak pamiętać, że elementy te muszą być linkowane jako zasoby zewnętrzne, tzn. nie przesyłane wraz z wiadomością. Grafikę najczęściej publikuje się na serwerze obsługującym witrynę internetową. Elementy graficzne można także w formie kodowania base64 {{{ ) }}} == Wykorzystanie szablonu w korespondencji == Dla każdego z kont pocztowych możliwe jest niezależne określenie właściwego szablonu, który będzie wykorzystywany podczas tworzenia wiadomości. {{{ formularz konfiguracji konta >> zakładka Ogólne >> pole Szablon wiadomości }}} Domyślnie, dla nowo konfigurowanych kont automatycznie wybierany jest szablon określony we wspomnianej stałej EMAIL_DEFAULT_TEMPLATE. W przypadku wysyłania bardziej specyficznych wiadomości (np. ofert), gdzie oczekiwane jest zawarcie bardziej szczegółowych, statycznych informacji, możliwe jest wybranie szablonu już bezpośrednio na formularzu tworzonej wiadomości, na zakładce ''Opcje''. Określony w ten sposób szablon ma wyższy priorytet, niż domyślny szablon przypisany do konta, więc w tym momencie kolejne zmiany w polu ''Od'' będą powodowały jedynie aktualizację stopki. == Przykładowy szablon HTML/Flexy == Poniżej zamieszczony został kod szablonu widocznego na rysunku 1. Deklaracje ''important'' przy rozmiarze czcionki i rodzaju czcionki są konieczne dla nadpisania domyślnych ustawień edytora wysiwyg. {{{

System obiegu dokumentów,
workflow i CRM
{text:h} {if:footer} {end:}
{if:quoted}

{quoted:h}
{end:} }}} == Wstawianie danych z bazy do szablonu maila == Przydatną opcją dla dużych organizacji jest pobieranie automatyczne danych do stopki z danych pracownika pochodzących ze struktury organizacyjnej i konta użytkownika. Przykładowe zapytania poniżej: {{{
{sql_query(#SELECT u.firnam || ' ' || u.lasnam AS line_1 FROM organization_units o LEFT JOIN users_link_org_units ulo ON o.orunid = ulo.orunid LEFT JOIN users u ON u.usr_id = ulo.usr_id WHERE u.usr_id = {%1}#,LOGGED_USR_ID)}

{sql_query(#SELECT o.ndenam AS line_2 FROM organization_units o LEFT JOIN users_link_org_units ulo ON o.orunid = ulo.orunid LEFT JOIN users u ON u.usr_id = ulo.usr_id WHERE u.usr_id = {%1}#,LOGGED_USR_ID)}

{sql_query(#SELECT CASE WHEN u.iphone IS NOT NULL THEN 'phone ' || u.iphone ELSE ''END AS line_3 FROM organization_units o LEFT JOIN users_link_org_units ulo ON o.orunid = ulo.orunid LEFT JOIN users u ON u.usr_id = ulo.usr_id WHERE u.usr_id = {%1}#,LOGGED_USR_ID)}
{sql_query(#SELECT CASE WHEN u.phone_ IS NOT NULL THEN 'mobile ' || u.phone_ ELSE ''END AS line_4 FROM organization_units o LEFT JOIN users_link_org_units ulo ON o.orunid = ulo.orunid LEFT JOIN users u ON u.usr_id = ulo.usr_id WHERE u.usr_id = {%1}#,LOGGED_USR_ID)}
{sql_query(#SELECT CASE WHEN e_mail IS NOT NULL THEN e_mail ELSE ''END AS line_5 FROM organization_units o LEFT JOIN users_link_org_units ulo ON o.orunid = ulo.orunid LEFT JOIN users u ON u.usr_id = ulo.usr_id WHERE u.usr_id = {%1}#,LOGGED_USR_ID)}

}}} == Drukowanie szablonu maila == Za drukowanie mail odpowiada plik email.tpl znajdujący się w /public_html/apps/edokumenty/var/tpl w przypadku problemów z drukowaniem, np czcionka jest zbyt mała należy zmodyfikować zawartość pliki modyfikując linię {{{ {labelTo}: }}} na {{{ {labelTo}:

{to}

}}} Lub przekopiować szablon z tpl_default do tpl