@AndreyKuz
Интеграция сайта с 1с

Куда поместить код с getlist?

Есть такой код, если поместить в template.php компонента то все работает нормально, но вроде как такой код нужно помещать в init.php (или еще куда-то?)
Если помещаю в init.php то переменная $property недоступна в template.php, как правильно разместить свой код чтобы $property была доступна?

$propertyArr = [];
    $dbResult = CIBlockElement::GetList([], 
        ["IBLOCK_ID" => 18, "ACTIVE" => "Y", "SECTION_ID" => 24],
        false,
        false,
        ["ID",'PROPERTY_COUNTRY_VALUE']
    );
    while ($ob = $dbResult->GetNext()) {
        array_push($propertyArr, $ob['PROPERTY_COUNTRY_VALUE_ENUM_ID']);  
    }
     $enums= array_unique($propertyArr);
     $property = CIBlockPropertyEnum::GetList(
		['VALUE' => 'ASC'],
		["IBLOCK_ID"=>18, "ID" => $enums]
);
  • Вопрос задан
  • 63 просмотра
Решения вопроса 1
Ge1i0N
@Ge1i0N
Поместите в файл result_modifier.php который должен лежать рядом с вашим template.php.
Чтобы ваш $property был на странице шаблона, поместите его в массив $arResult
$propertyArr = [];
$dbResult = CIBlockElement::GetList([], 
        ["IBLOCK_ID" => 18, "ACTIVE" => "Y", "SECTION_ID" => 24],
        false,
        false,
        ["ID",'PROPERTY_COUNTRY_VALUE']
);
while ($ob = $dbResult->GetNext()) {
        array_push($propertyArr, $ob['PROPERTY_COUNTRY_VALUE_ENUM_ID']);  
}
$enums= array_unique($propertyArr);
$property = CIBlockPropertyEnum::GetList(
        ['VALUE' => 'ASC'],
        ["IBLOCK_ID"=>18, "ID" => $enums]
);
$arResulit['PROPERTY'] = $property;


Только убедитесь что в $arResulit ещё нет такого ключа, или измените его на другой.

Подробнее про result_modifier.php тут: https://dev.1c-bitrix.ru/learning/course/index.php...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы