fenom в чанках писем компонентов FormIt+AjaxForm
Добрый день, Народ!
Пробую вывести плейсхолдеры в чанках писем через fenom, но результат — пусто.
В настройках pdoTools — выставлены настройки обрабатывать чанки и страницы, а так же разрешен MODX объект.
По-моему раньше это работало без проблем, правда, уже не могу найти пример.
Подскажите каким образом обработать чанк письма с помощью fenom?
Пробую вывести плейсхолдеры в чанках писем через fenom, но результат — пусто.
В настройках pdoTools — выставлены настройки обрабатывать чанки и страницы, а так же разрешен MODX объект.
//пробую так
<p>Телефон: [[+phone_number]]</p> //Отлично работает
//Пробую так
<p>Телефон: {$phone_number}</p>//Пусто
//Пробую так
<p>Телефон: {$_modx->getPlaceholder('phone_number')}</p>//Пусто
//Пробую так
<p>Телефон: {$modx->getPlaceholder('phone_number')}</p>//Пусто
//Проверяю работу fenom
{$modx->placeholders|print}//Всё отлично работает
Вопрос, почему fenom не может получить плейсхолдеры формы, а обычный парсер MODX без проблем?По-моему раньше это работало без проблем, правда, уже не могу найти пример.
Подскажите каким образом обработать чанк письма с помощью fenom?
Комментарии: 11
Нужен пример вызова ajaxform.
То же самое независимо от вызова.
Вот пример вызова:
Вот пример вызова:
{set $emailFrom = 'mail_smtp_user'|option}
{$_modx->runSnippet('!AjaxForm', [
'snippet' => 'FormIt',
'form' => 'tpl.AjaxForm.link',
'hooks' => 'email',
'emailTpl' => 'tpl.email.question',
'emailSubject' => 'Тема письма',
'emailTo' => 'example@mail.ru',
'emailFrom' => $emailFrom,
'validate' => 'message:required',
'validationErrorMessage' => 'Ошибки при заполнении формы',
'successMessage' => 'Сообщение успешно отправлено!'
])}
Вот пример вызова
[[!AjaxForm?
&snippet=`FormIt`
&form=`calc_form`
&hooks=`email`
&emailTpl=`calc_email`
&emailSubject=`Заявка на услугу`
&emailFrom=`info@site.ru`
&emailTo=`{$_modx->config.client_email}`
&validate=`name:required,phone:required,email:email:required,workemail:blank`
&placeholderPrefix=`calc_form`
&submitVar=`calc_submit`
&validationErrorMessage=`В форме содержатся ошибки!`
&successMessage=`Сообщение успешно отправлено`
]]
Как вариант:
в файле core/components/formit/model/formit/fihooks.class.php на 450 строке
заменить
на
в файле core/components/formit/model/formit/fihooks.class.php на 450 строке
заменить
$message = $this->formit->getChunk($tpl, $fields);
на
$pdoTools = $this->modx->getService('pdoTools');
$message = $pdoTools->getChunk($tpl, $fields);
Похоже просьба о добавлении поддержки pdoTools в Formit висит уже долгое время github.com/Sterc/FormIt/pull/89. Добавил туда комментарий к просьбе, может теперь пофиксят…
Добавили данный функционал на гитхабе! Значит скоро будем ждать обновления FormIt!
Отличная новость, спасибо, Василий за инициативу.
Подскажите, похоже, что до сих пор FormIt не работает с Fenom? или надо совершить еще какие-то действия?
Последние версии прекрасно работают.
Спасибо, сам виноват. В журнал ошибок не заглянул, там банально со скобкой проблемы были.
Женя, спасибо.
Мне вот интересно стало, а можно ли как то динамически учить компоненты не поддерживающие pdoTools — работать с ним, как нибудь через плагины что ли?
Исходники править не очень хочется, потом забудешь, обновишься и всё чудо пропало.
Мне вот интересно стало, а можно ли как то динамически учить компоненты не поддерживающие pdoTools — работать с ним, как нибудь через плагины что ли?
Исходники править не очень хочется, потом забудешь, обновишься и всё чудо пропало.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.