Вызов:
[[!FormIt?
&hooks=`email`
&emailMultiSeparator=`,`
&emailTo=`[[+city-vakan]]`
&emailSubject=`Вакансия с сайта [[++site_name]]`
&emailTpl=`job-email2`
&formId=`form-jobs`
&submitVar=`job-btn`
&customValidators=`phoneValid`
&validate=`name-vakan:required, phone-vakan:phoneValid, email-vakan:email:required, file_form:required`
&successMessage=`<b>Ваш запрос отправлен.
Наши менеджеры свяжутся с Вами!</b>`
]]
В форме есть SELECT:
<label [[!+fi.error.city-vakan:!empty=`class="-error"`]]>
Город *
<select name="city-vakan" id="city-vakan" type="text" value="[[!+fi.city-vakan]]">
[[!getResources? &parents=`5` &tpl=`city-option` &sortby=`menuindex` &sortdir=`ASC` &limit=`0` &depth=`0` &includeTVs=`1` &prepareTVs=`1`]]
</select>
</label>
Чанк city-option:
<option [[+pagetitle:is=`[[!getResourceField? &id=`[[!#session.cityId:default=`27`]]` &field=`pagetitle`]]`:then=`selected`]] value="[[+tv.city-vakansia-email]]">[[+pagetitle]]</option>
Так вот, если в [[+tv.city-vakansia-email]] одна почта, то отправляет все хорошо.
Но если 2 почты через запятую error.log выдает, что не нашел почты для отправки:
(ERROR @ /index.php) [FormIt] Произошла ошибка при попытке отправить почту. Пожалуйста, введите хотя бы один адрес e-mail получателя.
Пробовал вручную задавать почты в чанке city-option без вывода [[+tv.city-vakansia-email]], результат тот же: на одну почту отправляет, на 2 — нет.
Заранее благодарен!
Павел Романов 06.02.2015 10:55 #
И что-то мне подсказывает, что можно обойтись без emailMultiSeparator:
Иван 06.02.2015 11:01 #
Если напрямую указать почты, то отправляет.
Сейчас залез в хуки и обнаружил, что $numAddresses (количество почт) выдает 1, а должно быть значение 2, при 2-ух почтах.
Видимо не работает разделение по сепаратору.
Не пойму почему
И видимо не разделяет он именно из-за того, что значения в плейсхолдере
Иван 06.02.2015 11:03 #
Павел Романов 06.02.2015 11:15 #
Всегда делаю для удобства в админке TV «Адреса для формы обратной связи» и прописываю его в emailTo. Все работает, хоть десять адресов забей ))
UPD
Хотя проверил на select, Вы правы — не отправляется.
То есть, если из формы передавать адреса, то возможен только один получатель.
Иван 06.02.2015 11:22 #
[2015-02-06 12:16:45] (ERROR @ /index.php) [FormIt] [[+city-vakan]]
затем с прямым указанием почт:
[2015-02-06 12:19:04] (ERROR @ /index.php) [FormIt] fedorenko.i.m@yandex.ru,fedorenko.i.m@gmail.com
Соответственно мне кажется, когда идет присвоение значения переменной $emailTo он вставляет имя плейсхолдера [[+city-vakan]] и парсинг не срабатывает, он не находит запятых и отдает форме этот плейсхолдер. В случаи с одной почтой — это прокатывает, а в случаи с 2-мя естественно запятая вызывает ошибку
Вот строчка присвоения значения:
$emailTo = $this->modx->getOption('emailTo',$this->formit->config,'');
Вот здесь похоже и происходит косяк. надо как то получить из плейсходера значение и подставить видимо сюда.