Как получить id поля по его строковому идентификатору — различия между версиями

Материал из Umicms
Перейти к:навигация, поиск
 
Строка 1: Строка 1:
'''Актуально для версии 2.18'''
+
'''Актуально для версии 18.'''
  
 
== Задача ==
 
== Задача ==

Текущая версия на 08:41, 28 мая 2018

Актуально для версии 18.

Задача

Если Вы столкнулись с данной задачей, то решить её стандартными средствами нельзя. Необходимо написать кастомный макрос, пример оного дан ниже.

Решение

%custom getFieldIdByName()% — возвращает id поля.

Параметры: custom getFieldIdByName($type_id, $field_name)

$type_id

  Определяет в каком типе данных будет произведен поиск.

$field_name

  Определяет какой строковой идентификатор искать.

Для применения этого макроса скопируйте код макроса в файл /classes/modules/custom.php (для старой реализации модулей) или /classes/components/custom.php (для новой реализации модулей).

Код макроса

		public function getFieldIdByName($type_id, $field_name){
		
			$fields = new selector('objects');
			$fields->types('object-type')->id(intval($type_id));
			return $fields->searchField($field_name);
		}