UMIhelp
Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: Byte от 06 Мая 2014, 10:02:44
-
Подскажите, пожалуйста, возможно ли написать единый шаблон для писем всех форм обратной связи, скажем с фиксированной темой, может даже отправителем и в теле письма все поля формы, представленные в определенном формате.
Думаю что нужно смотреть в направлении /templates/{мой_шаблон}/xslt/mail
Но вроде бы этот шаблон обрабатывает уже сформированное письмо.
-
Пока нашел решение только в изменении системного метода formatMessage(), но при первом обновлении он затрется, так что не лучший способ, может можно написать кастомный макрос, который выполнялся бы вместо этого?
-
Как вариант, переопределить formatMessage в templates/имя шаблона/classes/modules/webforms/class.php (подробнее о новом формате расширения стандартного функционала см. здесь - http://api.docs.umi-cms.ru/razrabotka_nestandartnogo_funkcionala/razrabotka_sobstvennyh_makrosov_i_modulej/novyj_format_rasshireniya_funkcionala/
-
formatMessage используется для преформатирования сообщения например Использование bb-кодов на форуме (http://wiki.umisoft.ru/%D0%98%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5_bb-%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D0%BD%D0%B0_%D1%84%D0%BE%D1%80%D1%83%D0%BC%D0%B5).
Для того что бы решить твою задачу надо сделать шаблоны /templates/{мой_шаблон}/xslt/mail в едином стиле, адрес отправителя берется из настроек системы если не указан явно.
-
Как вариант, переопределить formatMessage
В принципе это и имел ввиду во втором сообщении, обязательно попробую. Но это не самое лаконичное решение, Хотелось бы разобраться с шаблонами templates/{мой_шаблон}/xslt/mail но нигде не могу найти документацию. Собственно не понимаю какой xml приходит на вход, поэтому никак не выходит его обработать.
-
Письма создаются по шаблонам, которые определены в админке, а не в шаблонизаторе.
-
Письма создаются по шаблонам, которые определены в админке, а не в шаблонизаторе.
Это справедливо для Модуля Обратная связь, в остальных случаях это шаблоны и есть практика кастома сделать возможным править их через админку.
Как вариант, переопределить formatMessage
В принципе это и имел ввиду во втором сообщении, обязательно попробую. Но это не самое лаконичное решение, Хотелось бы разобраться с шаблонами templates/{мой_шаблон}/xslt/mail но нигде не могу найти документацию. Собственно не понимаю какой xml приходит на вход, поэтому никак не выходит его обработать.
Как такового XML на который можно посмотреть нет, есть данные которые обрабатываются в шаблоне тела письма и разных случаях они разные, например при регистрации пользователя это user_id, domain, activate_link, login, password, lname, fname, father_name. Мне не известно есть ли документация по этому вопросу. В этом поможет разобраться код модуля и следующие материалы:
Добавление информации о заказе в письмо-уведомление (http://wiki.umisoft.ru/%D0%94%D0%BE%D0%B1%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8%D0%BD%D1%84%D0%BE%D1%80%D0%BC%D0%B0%D1%86%D0%B8%D0%B8_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5_%D0%B2_%D0%BF%D0%B8%D1%81%D1%8C%D0%BC%D0%BE-%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5)
Разный текст уведомления для разного статуса заказа (http://wiki.umisoft.ru/%D0%A0%D0%B0%D0%B7%D0%BD%D1%8B%D0%B9_%D1%82%D0%B5%D0%BA%D1%81%D1%82_%D1%83%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B4%D0%BB%D1%8F_%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D0%B3%D0%BE_%D1%81%D1%82%D0%B0%D1%82%D1%83%D1%81%D0%B0_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B0)
Изменяем шаблон оповещения менеджера tpl (http://wiki.umisoft.ru/%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D1%8F%D0%B5%D0%BC_%D1%88%D0%B0%D0%B1%D0%BB%D0%BE%D0%BD_%D0%BE%D0%BF%D0%BE%D0%B2%D0%B5%D1%89%D0%B5%D0%BD%D0%B8%D1%8F_%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80%D0%B0_tpl)
Уведомление менеджеру о заказе, со всем необходимыми данными (emarket) XSLT (http://wiki.umisoft.ru/%D0%A3%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BC%D0%B5%D0%BD%D0%B5%D0%B4%D0%B6%D0%B5%D1%80%D1%83_%D0%BE_%D0%B7%D0%B0%D0%BA%D0%B0%D0%B7%D0%B5,_%D1%81%D0%BE_%D0%B2%D1%81%D0%B5%D0%BC_%D0%BD%D0%B5%D0%BE%D0%B1%D1%85%D0%BE%D0%B4%D0%B8%D0%BC%D1%8B%D0%BC%D0%B8_%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC%D0%B8_(emarket)_XSLT)
Если кто знает о наличии документации по данным передаваемым в блоки шаблонов почтовых уведомлений разных модулей, пишите, мне тоже будет интересно.
-
Письма создаются по шаблонам, которые определены в админке, а не в шаблонизаторе.
Это справедливо для Модуля Обратная связь, в остальных случаях это шаблоны и есть практика кастома сделать возможным править их через админку.
В первом сообщении было сказано только про "Обратную связь":
Подскажите, пожалуйста, возможно ли написать единый шаблон для писем всех форм обратной связи, скажем с фиксированной темой, может даже отправителем и в теле письма все поля формы, представленные в определенном формате.
-
Письма создаются по шаблонам, которые определены в админке, а не в шаблонизаторе.
Это справедливо для Модуля Обратная связь, в остальных случаях это шаблоны и есть практика кастома сделать возможным править их через админку.
В первом сообщении было сказано только про "Обратную связь":
Подскажите, пожалуйста, возможно ли написать единый шаблон для писем всех форм обратной связи, скажем с фиксированной темой, может даже отправителем и в теле письма все поля формы, представленные в определенном формате.
Хм, действительно, наболтал лишнего, простите.
-
Да, важно именно сообщения обратной связи обрабатывать, у меня там несколько десятков форм с различными полями и не очень удобно для каждой формы создавать шаблон письма
-
Да, важно именно сообщения обратной связи обрабатывать, у меня там несколько десятков форм с различными полями и не очень удобно для каждой формы создавать шаблон письма
Конечное решение зависит от деталей, например как часто надо менять шаблоны писем, добавляются ли формы, меняются ли у форм поля и т.п.
Как писал e.ioffe (http://umihelp.ru/forum/index.php/topic,1809.msg7731.html#msg7731) написать макрос который будет вставляться в тело шаблона при этом решение не будет касаться полей темы, отправителя и получателя.
Собственно не понимаю какой xml приходит на вход, поэтому никак не выходит его обработать.
Этот макрос будет работать в момент отправки формы поэтому смотри что приходит в параметры запроса getRequest({key}) например param0, param1, param* и data*
Еще в том же направлении: создать обработчик события добавления и редактирования формы и что то делать со всеми полями шаблонов.
Еще можно подойти к этому написав скрипт для создания, обновления шаблонов писем для Форм обратной связи по шаблону (так сказать шаблоны по шаблону :) ) это было бы полезно добавить в UMI.Console (https://github.com/emomteam/UMI.Console) или просто standalone-скрипт.