Как в 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%)%">

тогда адресат подставится автоматически.