Иногда ты тихо ненавидишь Bitrix. Иногда ты благодаришь его... Вот недавно подкинули задачу, ну скажем, не очень программистическое - нужно было оформить все письма красиво. Чтоб у письма была шапка, подвал. Причем, неоторые письма были уже оформлены красиво. Осталось всего лишь привести в подобающий вид остальные 40. Нахмурив небритое лицо я прикидывал сколько времени потрачу на столь нудную задачу. Если на одно письмо уйдет 1 мин то в итоге времени потрачу = 40 мин. Не долго. Но нудно. Такие задачи напрочь убивают желание жить. Благо мозг включился вовремя и когда редактировал третье письмо , вдруг, сообразил что есть же механизм событий у Bitrix. Наверняка есть который срабатывает перед отравлением письма. Я страшно обрадовался найдя такое событие.
В итоге, оставалось только в каждом письме прописать в начале #HEADER# , а в конце #FOOTER# . Да, согласен, все равно пришлось перелопатить все письма, но это лучше чем копировать стили и html код. (Еще, было бы круто добавлять в начало и в конец письма без подстановки в переменные #HEADER# и #FOOTER# но не стал с этим разбираться.)
Итак. Создаем в /bitrix/php_interface/ файлы letter-header.html и letter-footer.html . Туда размещаем html коды .
А в файле init.php пишем код:
И еще. В шаблоне письма текст должен быть отмечен как html или визуальный редактор.
В итоге, оставалось только в каждом письме прописать в начале #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 или визуальный редактор.
Комментариев нет:
Отправить комментарий