Как получить id поля по его строковому идентификатору — различия между версиями
Материал из Umicms
Mad grant (обсуждение | вклад) (Новая страница: «'''Актуально для версии 2.9.5''' == Задача == Если Вы столкнулись с данной задачей, то решить её …») |
Whoa (обсуждение | вклад) |
||
(не показаны 3 промежуточные версии 2 участников) | |||
Строка 1: | Строка 1: | ||
− | '''Актуально для версии | + | '''Актуально для версии 18.''' |
== Задача == | == Задача == | ||
Строка 9: | Строка 9: | ||
%custom getFieldIdByName()% — возвращает id поля. | %custom getFieldIdByName()% — возвращает id поля. | ||
− | '''Параметры: custom | + | '''Параметры: custom getFieldIdByName($type_id, $field_name)''' |
− | '''$ | + | '''$type_id''' |
− | Определяет | + | Определяет в каком типе данных будет произведен поиск. |
+ | '''$field_name''' | ||
+ | Определяет какой строковой идентификатор искать. | ||
− | Для применения этого макроса скопируйте код макроса в файл /classes/modules/custom.php. | + | Для применения этого макроса скопируйте код макроса в файл /classes/modules/custom.php (для старой реализации модулей) или /classes/components/custom.php (для новой реализации модулей). |
== Код макроса == | == Код макроса == | ||
Строка 26: | Строка 28: | ||
} | } | ||
</source> | </source> | ||
− | [[category:API]][[category:Вопросы и уроки разработки сайтов на UMI.CMS]] | + | [[category:API]][[category:Вопросы и уроки разработки сайтов на UMI.CMS]] |
Текущая версия на 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);
}