Через pdoResources не выводится плейсхолдер
Друзья, прошу помощи! Как в pdoResources через чанк вывести значение заранее заполненного плейсхолдера? На данный момент вместо значения плейсхолдера выводится его текстовая запись в примерно таком виде
Вообще хочу сделать прайс/онлайн-калькулятор товаров или услуг в виде формы, где через pdoResources будут выводиться товары или услуги по строкам с возможностью заказа выбранных услуг, при этом пользователь предварительно сможет подсчитать стоимость заказа.
У товара/услуги в строке будут отображаться:
Таким образом, пользователь сможет сформировать заказ нужных товаров/услуг, и вся информация по заказу (выбранные позиции, их количество и расчет стоимости заказа) уйдет на почту администратору сайта и пользователю, сформировавшему заявку.
Пока сделал форму заказа без расчета стоимостей, где через pdoResources вывел товары/услуги. Для отправки использую FormIt + AjaxForm. Параметр name у инпутов зависит от id ресурса.
В чанке sentEmailTpl, формирующем отправляемое письмо с заказом, также через pdoResources вывожу данные заказа с помощью чанка
Запись
Вполне вероятно, что я неправильно вывожу плейсхолдер через сниппет. Буду рад любой помощи!
[[+nn7]], где последняя цифра зависит от id ресурса. Т.е. получается, что плейсхолдер не обрабатывается в pdoResources, вместо его значения выводится текст, задающий сам плейсхолдер.Вообще хочу сделать прайс/онлайн-калькулятор товаров или услуг в виде формы, где через pdoResources будут выводиться товары или услуги по строкам с возможностью заказа выбранных услуг, при этом пользователь предварительно сможет подсчитать стоимость заказа.
У товара/услуги в строке будут отображаться:
- название
- стоимость
- возможно какие-то дополнительные данные из дополнительных полей соответствующих ресурсов (картинка-привью, наличие и пр.) по необходимости
- и будет input, где пользователь сможет указать количество единиц товара/услуги для заказа
Таким образом, пользователь сможет сформировать заказ нужных товаров/услуг, и вся информация по заказу (выбранные позиции, их количество и расчет стоимости заказа) уйдет на почту администратору сайта и пользователю, сформировавшему заявку.
Пока сделал форму заказа без расчета стоимостей, где через pdoResources вывел товары/услуги. Для отправки использую FormIt + AjaxForm. Параметр name у инпутов зависит от id ресурса.
В чанке sentEmailTpl, формирующем отправляемое письмо с заказом, также через pdoResources вывожу данные заказа с помощью чанка
[[#[[+id]].pagetitle]]: количество - [[+nn[[#[[+id]].id]]]], цена - [[#[[+id]].cena]] рублейПри этом название товара и стоимость в заказе приходят правильные, чего не скажешь про указанное количество.Запись
[[+nn[[#[[+id]].id]]]]должна формировать плейсхолдер количества товара/услуги, передаваемый из формы для дальнейшей отправки. Но как я писал выше, эта запись выводит не значение плейсхолдера[[+nn7]], а его текстовую запись. Т.е. если в форме заказа я укажу для элемента с id=7 какое-то числовое значение, то в заказе в письме вместо этого числового значения отображается не введенное число, а текст [[+nn7]]Причем если в чанке sentEmailTpl, формирующем отправляемое письмо с заказом, выводить данные заказа не через pdoResources а вручную для каждого отдельного товара/услуги в виде[[#7.pagetitle]]: - количество - [[+nn[[#7.id]]]], цена - [[#7.cena]] рублей, то запись [[+nn[[#7.id]]]]которая формирует плейсхолдер [[+nn7]]отрабатывает нормально и отправляет в письме введенное в инпут значение.Вполне вероятно, что я неправильно вывожу плейсхолдер через сниппет. Буду рад любой помощи!
Комментарии: 5
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Желательно с примерами кода.
Например, если в чанке форме мы делаем поле
, то плейсхолдер [[+email]] сам создается автоматически (из параметра name поля) и заполняется введенным значением в соответствующий input.
При этом в чанке sentEmailTpl, формирующем отправляемое письмо, для отправки заполненного поля email мы пишем:
Т.е. плейсхолдеры создаются и заполняются автоматически. Как-то специально я их не заполняю.
Но так ли это, я понятия не имею ) А быть может, плейсхолдеры в сниппетах надо выводить как-то особым образом…
Быть может, в чанке sentEmailTpl, формирующем отправляемое письмо, сниппет pdoResources отрабатывает еще до того, как он вызывается через AjaxForm? Тогда получается, что плейсхолдеры еще не были сформированы…