Как в tpl шаблонизаторе убрать блок выбора адреса в форме обратной связи
Материал из Umicms
Актуально для версии 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%)%">
тогда адресат подставится автоматически.