Как получить id поля по его строковому идентификатору
Материал из Umicms
Актуально для версии 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);
}