Как в tpl шаблонизаторе убрать блок выбора адреса в форме обратной связи — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
(Новая страница: «'''Актуально для версии 2.9.5''' == Задача == Если Вы столкнулись с данной задачей, то решить её …»)
 
Строка 41: Строка 41:
 
тогда адресат подставится автоматически.
 
тогда адресат подставится автоматически.
  
[[Категория:Верстка в TPL]][[Категория:API]]
+
[[Категория:Верстка в TPL]][[Категория:API]][[Категория:Модуль_Обратная_связь]]

Версия 16:03, 28 февраля 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%)%">

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