{"id":4027,"date":"2020-05-08T12:37:45","date_gmt":"2020-05-08T10:37:45","guid":{"rendered":"https:\/\/ready-os.com\/?post_type=docs&#038;p=4027"},"modified":"2022-05-24T14:06:15","modified_gmt":"2022-05-24T12:06:15","slug":"szablony-wiadomosci-email","status":"publish","type":"docs","link":"https:\/\/www2.ready-os.com\/pl\/docs\/system\/szablony-wiadomosci-email\/","title":{"rendered":"Szablony wiadomo\u015bci email"},"content":{"rendered":"<p>Mechanizm szablon\u00f3w dla wiadomo\u015bci email funkcjonuje w oparciu o bibliotek\u0119 Flexy. Umo\u017cliwia on wykorzystanie podczas tworzenia wiadomo\u015bci wybranego, przygotowanego wcze\u015bniej szablonu &#8211; przypisanego do danego konta pocztowego (domy\u015blnie), b\u0105d\u017a wybranego r\u0119cznie na formularzu wiadomo\u015bci email. Szablon to w zasadzie plik HTML\/Flexy zawieraj\u0105cy dowolne elementy (np. tabele, obrazki), style (np. t\u0142o, rodzaj i wielko\u015b\u0107 czcionki, itd.) oraz predefiniowane zmienne.<\/p>\n<p>Je\u015bli podczas tworzenia wiadomo\u015bci, na formularzu dokonana zostanie zmiana konta, z kt\u00f3rego wiadomo\u015b\u0107 zostanie wys\u0142ana, b\u0105d\u017a bezpo\u015brednio wybrany zostanie jeden z dost\u0119pnych szablon\u00f3w, tre\u015b\u0107 wiadomo\u015bci zostanie prze\u0142adowana z zastosowaniem w\u0142a\u015bciwego szablonu zachowuj\u0105c prawid\u0142ow\u0105 stopk\u0119, cytowan\u0105 wiadomo\u015b\u0107 (np. dla odpowiedzi, podczas przekazywania wiadomo\u015bci), oraz wprowadzon\u0105 tre\u015b\u0107.<\/p>\n<p>&nbsp;<\/p>\n<h3>Tworzenie nowego szablonu<\/h3>\n<p>Wszystkie pliki z szablonami dla wiadomo\u015bci email powinny mie\u0107 rozszerzenie <strong>.tpl<\/strong> i znajdowa\u0107 si\u0119 w <strong>Centrum -&gt; Narz\u0119dzia -&gt; Panel sterowania -&gt; Pozosta\u0142e ustawienia -&gt; Szablony systemowe -&gt; katalog emails.<\/strong><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4057\" src=\"https:\/\/ready-os.com\/wp-content\/uploads\/2020\/05\/e29.png\" alt=\"\" width=\"1284\" height=\"815\" srcset=\"https:\/\/www2.ready-os.com\/wp-content\/uploads\/2020\/05\/e29.png 1284w, https:\/\/www2.ready-os.com\/wp-content\/uploads\/2020\/05\/e29-300x190.png 300w, https:\/\/www2.ready-os.com\/wp-content\/uploads\/2020\/05\/e29-1024x650.png 1024w, https:\/\/www2.ready-os.com\/wp-content\/uploads\/2020\/05\/e29-768x487.png 768w\" sizes=\"(max-width: 1284px) 100vw, 1284px\" \/><\/p>\n<p>Pliki musz\u0105 by\u0107 zapisane w kodowaniu UTF-8.<br \/>\nSzablony s\u0105 identyfikowane nazwami plik\u00f3w z obci\u0119tym rozszerzeniem (np. plik <em>nowy_szablon.tpl<\/em> b\u0119dzie wy\u015bwietlany na li\u015bcie wyboru szablonu pod nazw\u0105 <em>nowy_szablon<\/em>).<br \/>\nSzablony s\u0105 parsowane przez silnik Flexy, a ich wynikowa zawarto\u015b\u0107 traktowana jest jako HTML.<br \/>\nW szablonach mo\u017cna wykorzystywa\u0107 tak\u017ce predefiniowane zmienne, kt\u00f3rych warto\u015b\u0107 jest generowana automatycznie w zale\u017cno\u015bci od kontekstu u\u017cycia szablonu:<\/p>\n<pre>text - tre\u015b\u0107 wiadomo\u015bci wprowadzona przez u\u017cytkownika<\/pre>\n<pre>footer - stopka wiadomo\u015bci, w\u0142a\u015bciwa dla danego konta, b\u0105d\u017a u\u017cytkownika je\u015bli stopka dla konta nie zosta\u0142a okre\u015blona<\/pre>\n<pre>quoted - tre\u015b\u0107 cytowanej wiadomo\u015bci wraz z nag\u0142\u00f3wkiem - w przypadku tworzenia odpowiedzi lub przekazywania wiadomo\u015bci<\/pre>\n<p>W systemie instalowany jest domy\u015blnie wykorzystywany szablon o nazwie <em>default<\/em>. Nie jest zalecana modyfikacja tego pliku, ani jego usuwanie. Domy\u015blny szablon jest u\u017cywany w przypadku braku mo\u017cliwo\u015bci u\u017cycia szablonu oczekiwanego w danym kontek\u015bcie (np. brak w\u0142a\u015bciwego pliku, brak uprawnie\u0144 do pliku). Zmiany powinny by\u0107 wprowadzane na zasadzie dodawania nowych szablon\u00f3w.<\/p>\n<p>&nbsp;<\/p>\n<h3>Linkowanie grafiki w szablonach wiadomo\u015bci<\/h3>\n<p>W szablonie mo\u017cna oczywi\u015bcie umieszcza\u0107 elementy graficzne (tag IMG) b\u0105d\u017a te\u017c okre\u015bla\u0107 w definicji styl\u00f3w obrazy wykorzystywane jako t\u0142o. Nale\u017cy jednak pami\u0119ta\u0107, \u017ce elementy te musz\u0105 by\u0107 linkowane jako zasoby zewn\u0119trzne, tzn. nie przesy\u0142ane wraz z wiadomo\u015bci\u0105. Grafik\u0119 najcz\u0119\u015bciej publikuje si\u0119 na serwerze obs\u0142uguj\u0105cym witryn\u0119 internetow\u0105 firmy.<br \/>\nElementy graficzne mo\u017cna tak\u017ce w formie kodowania base64<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\" data-enlighter-theme=\"classic\" data-enlighter-linenumbers=\"false\">&lt;img src=\"data:image\/png;base64,iVBORw0KGgoAA.......\" \/&gt;)<\/pre>\n<p>&nbsp;<\/p>\n<h3>Wykorzystanie szablonu w korespondencji<\/h3>\n<p>Dla ka\u017cdego z kont pocztowych mo\u017cliwe jest niezale\u017cne okre\u015blenie w\u0142a\u015bciwego szablonu, kt\u00f3ry b\u0119dzie wykorzystywany podczas tworzenia wiadomo\u015bci.<\/p>\n<p>Okre\u015blamy to w oknie konfiguracji konta pocztowego:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4059\" src=\"https:\/\/ready-os.com\/wp-content\/uploads\/2020\/05\/e30.png\" alt=\"\" width=\"866\" height=\"729\" srcset=\"https:\/\/www2.ready-os.com\/wp-content\/uploads\/2020\/05\/e30.png 866w, https:\/\/www2.ready-os.com\/wp-content\/uploads\/2020\/05\/e30-300x253.png 300w, https:\/\/www2.ready-os.com\/wp-content\/uploads\/2020\/05\/e30-768x647.png 768w\" sizes=\"(max-width: 866px) 100vw, 866px\" \/><\/p>\n<p>W przypadku wysy\u0142ania bardziej specyficznych wiadomo\u015bci (np. ofert), gdzie oczekiwane jest zawarcie bardziej szczeg\u00f3\u0142owych, statycznych informacji, mo\u017cliwe jest wybranie szablonu ju\u017c bezpo\u015brednio na formularzu tworzonej wiadomo\u015bci, na przycisku <strong>Opcje<\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-4061\" src=\"https:\/\/ready-os.com\/wp-content\/uploads\/2020\/05\/e31.png\" alt=\"\" width=\"821\" height=\"598\" srcset=\"https:\/\/www2.ready-os.com\/wp-content\/uploads\/2020\/05\/e31.png 821w, https:\/\/www2.ready-os.com\/wp-content\/uploads\/2020\/05\/e31-300x219.png 300w, https:\/\/www2.ready-os.com\/wp-content\/uploads\/2020\/05\/e31-768x559.png 768w\" sizes=\"(max-width: 821px) 100vw, 821px\" \/><\/p>\n<p>Okre\u015blony w ten spos\u00f3b szablon ma wy\u017cszy priorytet, ni\u017c domy\u015blny szablon przypisany do konta, wi\u0119c w tym momencie kolejne zmiany w polu <em>Od<\/em> b\u0119d\u0105 powodowa\u0142y jedynie aktualizacj\u0119 stopki.<\/p>\n<p>&nbsp;<\/p>\n<h3>Przyk\u0142adowy szablon HTML\/Flexy<\/h3>\n<p>Poni\u017cej zamieszczony zosta\u0142 przyk\u0142adowy kod szablonu. Deklaracje <em>important<\/em> przy rozmiarze czcionki i rodzaju czcionki s\u0105 konieczne dla nadpisania domy\u015blnych ustawie\u0144 edytora.<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\" data-enlighter-theme=\"classic\" data-enlighter-linenumbers=\"false\">&lt;body&gt;\n&lt;head&gt;\n&lt;style type=\"text\/css\"&gt;\n    body {\n        font-size: 12pt !important;\n        font-family: calibri, arial, sans-serif !important;\n        color: #000;\n        background: #fff;\n        padding: 4px;\n    }\n    table, td {\n        font-family: calibri, arial, sans-serif;\n        border-style: none;\n        padding: 0px;\n        margin: 0px;\n    }\n    td {\n        vertical-align: top;\n    }\n    img {\n        padding: 0px;\n        border: 0px;\n    }\n    .tmain {\n        width: 100%;\n    }\n    .tmain .leftCol {\n        width: 200px;\n        color: #999;\n        border-right: 1px solid #bbb;\n    }\n    .tmain .rightCol {\n        padding: 0px 12px;\n    }\n    .footer {\n        border-top: 1px solid #bbb;\n        margin-top: 12px;\n        padding-top: 12px;\n    }\n    .account {\n        color: #777;\n    }\n    .quoted {\n        padding: 0px 10px;\n    }\n    .quoted blockquote {\n        border: 2px none #3D8BFF;\n        border-style: none solid;\n        padding: 0px 10px;\n        margin: 0px;\n    }\n&lt;\/style&gt;\n&lt;\/head&gt;\n&lt;table class=\"tmain\"&gt;\n    &lt;tr&gt;\n        &lt;td class=\"leftCol\"&gt;\n            &lt;div class=\"company\"&gt;\n                &lt;img src=\"data:image\/png;base64,iVBORw0KGgoAA.......\" \/&gt;)&lt;br&gt;\n                Ready_\n            &lt;\/div&gt;\n        &lt;\/td&gt;\n        &lt;td class=\"rightCol\"&gt;\n            \n            {text:h}\n            \n            {if:footer}\n            &lt;div class=\"footer account\"&gt;\n                {footer:h}\n            &lt;\/div&gt;\n            {end:}\n        &lt;\/td&gt;\n    &lt;\/tr&gt;\n&lt;\/table&gt;\n\n{if:quoted}\n    &lt;br&gt;&lt;br&gt;\n    &lt;div class=\"quoted\"&gt;\n    {quoted:h}\n    &lt;\/div&gt;\n{end:}\n\n&lt;\/body&gt;<\/pre>\n<h3>Wstawianie danych z bazy do szablonu maila<\/h3>\n<p>Przydatn\u0105 opcj\u0105 dla du\u017cych organizacji jest pobieranie automatyczne danych do stopki z danych pracownika pochodz\u0105cych ze struktury organizacyjnej i konta u\u017cytkownika. Przyk\u0142adowe zapytania poni\u017cej:<\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"html\" data-enlighter-theme=\"classic\" data-enlighter-linenumbers=\"false\">&lt;div class=\"imie\"&gt;\n       {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)}&lt;br&gt;&lt;\/div&gt;\n       &lt;br \/&gt;\n&lt;div class=\"stanowisko\"&gt;\n       {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)}&lt;br\/&gt;\n        &lt;br\/&gt;\n        {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)}&lt;br\/&gt;\n        {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)}&lt;br\/&gt;\n       &lt;u&gt;{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)}&lt;\/u&gt;&lt;br\/&gt;\n        \n&lt;br &gt;\n&lt;\/div&gt;\n<\/pre>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mechanizm szablon\u00f3w dla wiadomo\u015bci email funkcjonuje w oparciu o bibliotek\u0119 Flexy. Umo\u017cliwia on wykorzystanie podczas tworzenia wiadomo\u015bci wybranego, przygotowanego wcze\u015bniej szablonu &#8211; przypisanego do danego konta pocztowego (domy\u015blnie), b\u0105d\u017a wybranego r\u0119cznie na formularzu wiadomo\u015bci email. Szablon to w zasadzie plik HTML\/Flexy zawieraj\u0105cy dowolne elementy (np. tabele, obrazki), style (np. t\u0142o, rodzaj i wielko\u015b\u0107 czcionki, itd.) [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"doc_category":[143],"doc_tag":[],"knowledge_base":[134],"_links":{"self":[{"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/docs\/4027"}],"collection":[{"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/comments?post=4027"}],"version-history":[{"count":27,"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/docs\/4027\/revisions"}],"predecessor-version":[{"id":10000,"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/docs\/4027\/revisions\/10000"}],"wp:attachment":[{"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/media?parent=4027"}],"wp:term":[{"taxonomy":"doc_category","embeddable":true,"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/doc_category?post=4027"},{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/doc_tag?post=4027"},{"taxonomy":"knowledge_base","embeddable":true,"href":"https:\/\/www2.ready-os.com\/pl\/wp-json\/wp\/v2\/knowledge_base?post=4027"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}