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

Материал из Umicms
Версия от 08:41, 28 мая 2018; Whoa (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к:навигация, поиск

Актуально для версии 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);
		}