@alexwprof

Как вывести свойства товаров в меню Битрикс?

Есть меню на битрикс, приходится дорабатывать. Принцип меню следующий, при поднесении мыши к ссылке категории, справа появлется 4 картинки её товара. Раньше было просто, поскольку картинки брались из самой категории. А теперь нужно из товара. Картинки гружу из свойства MORE_PHOTO. Есть код в result_modifier.php:
if(CModule::IncludeModule("iblock"))
   {

$arSelect = Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM","PROPERTY_*");
$arFilter = Array("IBLOCK_ID"=>2, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
$res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>50), $arSelect);


while($ob = $res->GetNextElement()){
 $arItem = $ob->GetFields();
 $arItem["PROPERTIES"] = $ob->GetProperties();
 $arResult[] = $arItem;
}
debug($arResult);
   }


Получаю в массив содержимое PROPERTIES. Всё бы хорошо. Все данные выводятся вместе с полями. Может это банально, но я не могу передать массив в шаблон в том виде, в котором он мне нужен. Если же массив передаётся, то только с одним товаром. Т.е там содержится инфа только из одного товара. А мне нужно, чтобы были все, это нужно для перебора и подсановки картинок под каждую категорию. А то получается, под все категории подставляется одно и то же свойство из одного товара.
Кто-нибудь знает как в этом случает быть. Меня интересует вопрос. Как передать правильно массив в шаблон, чтобы там были доступны все товары, а не один?
  • Вопрос задан
  • 680 просмотров
Пригласить эксперта
Ответы на вопрос 1
WebDev2030
@WebDev2030
Битриксоид до мозга и костей
Все описанное не очень понятно.
Я так понимаю стоит задача сделать так чтобы у каждой категории была информация о 4-х первых товаров.
Ну тогда лучше использовать компонент bitrix:catalog.section и в result_modifier делать запрос по 4 товара на категорию.
$arSelect = Array("ID", "IBLOCK_ID", "NAME", "DATE_ACTIVE_FROM","PROPERTY_*");
$arFilter = Array("IBLOCK_ID"=>2, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");
foreach($arResult["SRCTIONS"] as ?$arSection)  //Пробегаем по секциям 
{
   $arFilter["IBLOCK_SECTION_ID "] = $arSection["ID"];  //Добавляем в фильтр раздел товара
   $res = CIBlockElement::GetList(Array(), $arFilter, false, Array("nPageSize"=>4), $arSelect); //получаем первые 4 товара

   while($ob = $res->GetNextElement()){
      $arItem = $ob->GetFields();
      $arItem["PROPERTIES"] = $ob->GetProperties();
      // Тут тебе нужны будут еще картинки так что код получения картинок сюда добавь
      $arSection["ITEMS"] = $arItem;
  }
}
//Код писал прям тут поэтому что-то может не работать :)
Ответ написан
Ваш ответ на вопрос

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

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