UMIhelp

Разработка сайта на UMI.CMS => Шаблоны XSLT => Тема начата: 31rus от 04 Декабря 2015, 17:49:53

Название: Вывод макроса через админку на XSLT
Отправлено: 31rus от 04 Декабря 2015, 17:49:53
Возник вопрос вставки формы обратной связи, в TPL это решалось вставкой нужном месте макроса webforms add()
В XSLT не проходит такой вариант, точнее TPL макрос отрабатывает, но не хочется использовать его. Вставка udata://webforms/add/ не даст результата, так же как и <![CDATA[<xsl:apply-templates select="document('udata://webforms/add/')/udata"/>]]>

Как решается данная проблема?
Я могу написать условие проверки страницы по адресу, типу и прочее. могу конечно добавить в админку поле и по нему провести проверку, но это не даст гибкости когда форма должна быть выведена в середине контента страницы(
Название: Re: Вывод макроса через админку на XSLT
Отправлено: crazygeorgio от 08 Декабря 2015, 19:31:20
что куда вы вставляете?
Название: Re: Вывод макроса через админку на XSLT
Отправлено: 31rus от 08 Декабря 2015, 19:37:31
В контент страницы, в разрыв текста надо вставить форму.
Название: Re: Вывод макроса через админку на XSLT
Отправлено: crazygeorgio от 08 Декабря 2015, 21:18:32
а в чем проблема-то использовать стандартный макрос webforms add()???
Название: Re: Вывод макроса через админку на XSLT
Отправлено: 31rus от 09 Декабря 2015, 06:44:24
В том что он TPL, зачем плодить зоопарк из шаблонизаторов.

Служба заботы сообщает следующее:

Здравствуйте, Денис.

К сожалению, это невозможно сделать на xslt, потому что xslt-процессор не обрабатывает контент страницы из базы данных, он работает непосредственно на xsl-файлах. Для решения Вашей задачи можно либо использовать tpl-макросы в контенте, либо править xsl-шаблоны в файлах.
Название: Re: Вывод макроса через админку на XSLT
Отправлено: crazygeorgio от 09 Декабря 2015, 15:08:11
можно написать кастомный макрос в котором брать xml из udata://webforms/add/, обрабатывать его по шаблону xsl и выдавать на выход готовый html
Название: Re: Вывод макроса через админку на XSLT
Отправлено: 31rus от 09 Декабря 2015, 15:11:08
это понятно, просто искал возможность без костылей решить данную задачу
Название: Re: Вывод макроса через админку на XSLT
Отправлено: admin от 01 Января 2016, 06:29:49
Еще один вариант костылей:
- вставляем в html поле какой-то зарезервированный код (например [webform=190])
- через js обрабатываем данный код и формируем форму за счет ajax запроса с параметром ?transform, который позволит нам работать с xslt шаблонами
   или
  пишем обработчик (событийная модель), который перед выводом сформированного html,  на уровне php перехватит его, сделает поиск кода и заменит его на форму, сформированную силами xslt шаблонизатора и только затем отдаст его браузеру