Да, уже нашла =) Не успела отписаться, вы раньше дали ответ =)
Сейчас попробую, привязать к конкретному id...
это получается вот так?
<xsl:template match="items" mode="address">
<xsl:apply-templates select="item" mode="address"/>
</xsl:template>
<xsl:template match="item" mode="address">
<!--<input type="hidden" name="system_email_to" value="{@id}"/>-->
<xsl:if test="result/@domain = $msk_domain">
<input type="hidden" name="system_email_to" value="6692"/>
</xsl:if>
<xsl:if test="result/@domain = $spb_domain">
<input type="hidden" name="system_email_to" value="7093"/>
</xsl:if>
</xsl:template>
или можно без result/@domain
Стандартное условие demodizzy делает именно это, если не выбран ни один из адресов. Проверяйте: вы задействовали стандартный обработчик адресов
Проверила, что в админке umi у формы стоит нужный адресат.
Вот код:
<xsl:template match="udata[@module = 'webforms'][@method = 'add']">
<button class="close-button close-button--modal" data-close="" aria-label="Закрыть модальное окно" type="button">
<span aria-hidden="true">
<svg class="ms-icon close-icon">
<use xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="#ms-close" />
</svg>
</span>
</button>
<h2 class="appoint__title">
<xsl:value-of select="document('upage://106.title_directorform')//value" disable-output-escaping="yes" />
</h2>
<form method="post" action="/webforms/send/" enctype="multipart/form-data" id="directorForm" novalidate="">
<p class="helper-text helper-text--director">
<xsl:value-of select="document('upage://106.text_directorform')//value" disable-output-escaping="yes" />
</p>
<input type="hidden" name="system_form_id" value="{/udata/@form_id}"/>
<input type="hidden" name="ref_onsuccess" value="/webforms/posted/{/udata/@form_id}/"/>
<xsl:apply-templates select="items" mode="address"/>
<xsl:apply-templates select="groups/group" mode="webforms" />
<button type="submit" class="top-bar__button button button--uppercase button--bold primary float-right"
data-open="appointmentModal">Отправить</button>
</form>
</xsl:template>
<!--ADDRESS-->
<xsl:template match="items" mode="address">
<xsl:apply-templates select="item" mode="address"/>
</xsl:template>
<xsl:template match="item" mode="address">
<input type="hidden" name="system_email_to" value="{@id}"/>
</xsl:template>
<!--All except services-->
<xsl:template match="group" mode="webforms">
<xsl:apply-templates select="field" mode="webforms"/>
</xsl:template>
Вызов формы идет через js:
/*------ director form ------*/
(function () {
if ((window.location+'').indexOf('spb.') > 0) return;
$('.js-director-form').on('click', function (e) {
e.preventDefault();
var $serviceModal = $('#callbackModal');
var $serviceContentUrl = '/udata//webforms/add/124/?transform=components/director-form.xsl';
$serviceModal.load($serviceContentUrl, function (result) {
$serviceModal.html(result).foundation('open');
var $orderForm = $('#directorForm');
validationForm($orderForm, true);
ajaxResponseForm($orderForm, $serviceModal);
});
});
})();
/*------ director form spb ------*/
(function () {
if ((window.location+'').indexOf('msk.') > 0) return;
$('.js-director-form').on('click', function (e) {
e.preventDefault();
var $serviceModal = $('#callbackModal');
var $serviceContentUrl = '/udata//webforms/add/208/?transform=components/director-form.xsl';
$serviceModal.load($serviceContentUrl, function (result) {
$serviceModal.html(result).foundation('open');
var $orderForm = $('#directorForm');
validationForm($orderForm, true);
ajaxResponseForm($orderForm, $serviceModal);
});
});
})();
Изначально сайт делала не я, пыталась обойти js, но сайт сразу падает к черту...
director form spb добавила уже я, проверяла через код, формы подтягиваются, как надо.
НО, письма не отправляются совсем...
Если я форму удаляю, которую создала для spb, то письма опять приходят на последний адрес из списка адресатов.
В форме, которую создала для Питера id полей имеют приставку _spb.
P.S.: убрала [@selected='selected'], ставила чтобы посмотреть что и как выведет
Кстати, если прописать в адресной строке /udata/webforms/add/208 или 124, одна для spb, другая для msk домена формы.
То у них отмечаются какие адреса выбраны...
<udata form_id="208" template="webforms" module="webforms" method="add" generation-time="0.011611">
<items>
<item id="6696" selected="selected">test spb</item>
<item id="6697">test msk</item>
</items>
<groups>
<group name="form_spb" title="Форма spb">
<field name="name_spb" title="Ваше имя" field_id="628" input_name="data[new][name_spb]" type="string" id="628" required="required"/>
<field name="email_spb" title="Ваш e-mail" field_id="629" input_name="data[new][email_spb]" type="string" id="629" required="required"/>
<field name="message_spb" title="Ваше сообщение" field_id="630" input_name="data[new][message_spb]" type="string" id="630"/>
</group>
</groups>
</udata>
Попробовала прописать точное указание, но это не сработало..
<xsl:template match="item" mode="address">
<input type="hidden" name="system_email_to" value="{items/item/@id}"/>
</xsl:template>
(http://)Стандартное условие demodizzy делает именно это, если не выбран ни один из адресов. Проверяйте: вы задействовали стандартный обработчик адресов
Я смогла сделать отправку по указанным адресатам вот таким запросом:
<xsl:template match="item[@selected='selected']" mode="address">
<input type="hidden" name="system_email_to" value="{@id}"/>
</xsl:template>
но вопрос, почему стала выводится название адресата >_< при том адресата, который не выбран для формы в админке
Поставила такое условие и текст ушел... и даже осталась отправка, как надо.
<xsl:template match="items" mode="address">
<xsl:apply-templates select="item" mode="address"/>
</xsl:template>
<xsl:template match="item" mode="address">
<input type="hidden" name="system_email_to" value="{@id}"/>
</xsl:template>
<xsl:template match="items[count(item) > 1]" mode="address">
<xsl:apply-templates select="item[@selected='selected']" mode="address" />
</xsl:template>
Но мне не очень нравится, как это выглядит...