Задача: у раздела инфоблока (ID=1) есть пользовательское свойство UF_TITLE, необходимо получить вместе с остальными стандартными параметрами раздела в функции getList на D7.
В старом ядре запрос выглядит так:
В D7 пришлось повозиться:
В итоге в результате получаем искомый параметр в поле IBLOCK_SECTION_TITLE_UF_TITLE.
Можно ли всё это сделать проще? Или каждый раз необходимо совершать описанные процедуры?
В старом ядре запрос выглядит так:
Код |
---|
$section = CIBlockSection::GetList( array(), array( "IBLOCK_ID" => 1, "ACTIVE" => "Y", "GLOBAL_ACTIVE" => "Y" ), false, array( "ID", "NAME", "DESCRIPTION", "PICTURE", "UF_TITLE" ) ); |
- Зайти в админке Настройки -> Производительность -> Таблицы
- Подставить в url параметр orm=y для доступа к функции автоматической генерации ORM класса.
- Сгенерировать класс для таблицы b_uts_iblock_1_section
- Положить класс по указанному пути (/bitrix/modules/iblock/lib/iblock1section.php)
- Переименовать namespace (Bitrix\Uts в Bitrix\Iblock)
Код |
---|
$section = SectionTable::getList( array( "select" => array("ID", "NAME", "DESCRIPTION", "PICTURE", "TITLE"), "filter" => array("IBLOCK_ID" => 1, "ACTIVE" => "Y", "GLOBAL_ACTIVE" => "Y"), "runtime" => array( "TITLE" => array( "data_type" => Bitrix\Iblock\Iblock1SectionTable::getEntity(), "reference" => array('=this.ID' => 'ref.VALUE_ID'), ) ) ) ); |
Можно ли всё это сделать проще? Или каждый раз необходимо совершать описанные процедуры?