Как в tpl шаблонизаторе убрать блок выбора адреса в форме обратной связи — различия между версиями
Материал из Umicms
Mad grant (обсуждение | вклад) |
Mad grant (обсуждение | вклад) |
||
Строка 37: | Строка 37: | ||
вставьте строку: | вставьте строку: | ||
+ | <source lang="html4"> | ||
<input type="hidden" name="system_email_to" value="%custom getCurrentAddress(%form_id%)%"> | <input type="hidden" name="system_email_to" value="%custom getCurrentAddress(%form_id%)%"> | ||
+ | </source> | ||
тогда адресат подставится автоматически. | тогда адресат подставится автоматически. | ||
[[Категория:Верстка в TPL]][[Категория:API]][[Категория:Модуль_Обратная_связь]] | [[Категория:Верстка в TPL]][[Категория:API]][[Категория:Модуль_Обратная_связь]] |
Версия 13:23, 11 марта 2014
Актуально для версии 2.9.5
Задача
Если Вы столкнулись с данной задачей, то решить её стандартными средствами нельзя. Необходимо написать кастомный макрос, пример оного дан ниже.
Решение
%custom getCurrentAddress()% выводи адресат, привязанный к форме в административном интерфейсе.
Параметры: custom getAltName($iFormId)
$iFormId
Идентификатор формы, для которой нужно вывести адресата.
Для применения этого макроса скопируйте код макроса в файл /classes/modules/custom.php.
Код макроса
public function getCurrentAddress($iFormId){
$formId = (!$iFormId)? getRequest('param0'): $iFormId;
$sel = new selector('objects');
$sel->types('object-type')->name('webforms', 'address');
foreach ($sel as $oObject)
if (in_array($formId, explode(',', $oObject->getValue('form_id')))) {
return $oObject->getId();
}
return $sel->first->getId();
}
Для его использования, в блоке $FORMS['form_block'] вместо строки:
%address_select%
вставьте строку:
<input type="hidden" name="system_email_to" value="%custom getCurrentAddress(%form_id%)%">
тогда адресат подставится автоматически.