линия

Главная

суббота, 26 мая 2018 г.

Bitrix - красивое оформление писем

Bitrix
Иногда ты тихо ненавидишь Bitrix. Иногда ты благодаришь его... Вот недавно  подкинули задачу, ну скажем, не очень программистическое - нужно было оформить все письма красиво. Чтоб у письма была шапка, подвал. Причем, неоторые письма были уже оформлены красиво. Осталось всего лишь привести в подобающий вид остальные 40. Нахмурив небритое лицо я прикидывал сколько времени потрачу на столь нудную задачу. Если на одно письмо уйдет 1 мин то в итоге времени потрачу = 40 мин. Не долго. Но нудно. Такие задачи напрочь убивают желание жить. Благо мозг включился вовремя и когда редактировал третье письмо , вдруг, сообразил что есть же механизм событий у Bitrix. Наверняка есть который срабатывает перед отравлением письма. Я страшно обрадовался найдя такое событие.



В итоге, оставалось только в каждом письме прописать в начале #HEADER# , а в конце #FOOTER# . Да, согласен, все равно пришлось перелопатить все письма, но это лучше чем копировать стили и html код.  (Еще, было бы круто  добавлять  в начало и в конец письма без подстановки в переменные #HEADER# и #FOOTER#  но не стал с этим разбираться.)

Итак. Создаем в /bitrix/php_interface/ файлы letter-header.html и letter-footer.html . Туда размещаем html коды .
А в файле init.php пишем код:


1
2
3
4
5
6
7
8
9
<?php
AddEventHandler('main', 'OnBeforeEventSend', Array("MyForm", "my_OnBeforeEventSend"));
 class MyForm{
  function my_OnBeforeEventSend(&$arFields, $arTemplate){ 
  
       $arFields["HEADER"]= file_get_contents($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/letter-header.html');
       $arFields["FOOTER"]= file_get_contents($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/letter-footer.html');
  }
 }

И еще. В шаблоне письма текст должен быть отмечен как html или визуальный редактор.

Комментариев нет:

Отправить комментарий