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

Материал из Umicms
Перейти к:навигация, поиск
Строка 1: Строка 1:
'''Актуально для версии 2.9.5'''
+
'''Актуально для версии 2.18'''
  
 
== Задача ==
 
== Задача ==
Строка 9: Строка 9:
 
%custom getFieldIdByName()% — возвращает id поля.
 
%custom getFieldIdByName()% — возвращает id поля.
  
'''Параметры: custom getAltName($type_id, $field_name)'''
+
'''Параметры: custom getFieldIdByName($type_id, $field_name)'''
  
 
'''$type_id'''
 
'''$type_id'''
Строка 16: Строка 16:
 
   Определяет какой строковой идентификатор искать.
 
   Определяет какой строковой идентификатор искать.
  
Для применения этого макроса скопируйте код макроса в файл /classes/modules/custom.php.
+
Для применения этого макроса скопируйте код макроса в файл /classes/modules/custom.php (для старой реализации модулей) или /classes/components/custom.php (для новой реализации модулей).
  
 
== Код макроса ==
 
== Код макроса ==

Версия 09:45, 24 мая 2018

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