Создан и настроен инфоблок под эти товары со всеми пользовательскими полями . Структура примерно следующая:
-Товары
- -Категория 1
---Товар
---Товар
- -Категория 2
---Товар №
и так далее.
Как правильно реализовать ? Ведь через API или прямые запросы к БД это плохой тон и костыли не охото делать...
Единственная идея в моей голове сделать вот так : Сначала перебираем все категории а потом из этих категорий выводим товары. И приходится копипастить такой код в каждый элемент таба меняя SECTION_ID
Код |
---|
<div id="first"> <div id='b01'> <? $arFilter = Array('IBLOCK_ID'=>1, 'GLOBAL_ACTIVE'=>'Y', 'SECTION_ID'=>1); $db_list = CIBlockSection::GetList(Array(), $arFilter, true); while($ar_result = $db_list->GetNext()) { $arrayID[] = $ar_result['ID']; } $arSelect = Array("ID", "IBLOCK_ID", "NAME", 'DETAIL_PAGE_URL','PREVIEW_PICTURE'); $arFilter = Array("IBLOCK_ID"=>1, "SECTION_ID"=>$arrayID); $res = CIBlockElement::GetList(Array("RAND"=>"ASC"), $arFilter, false, Array("nTopCount"=>5), $arSelect); while($ob = $res->GetNextElement()){ $ar_fields = $ob->GetFields(); ?> <div id='b01-block'> <div id='b01-block-inner'> <div id='b01-img'> <a href='<?=$ar_fields['DETAIL_PAGE_URL']?>'><img src='<?=CFile::GetPath($ar_fields['PREVIEW_PICTURE'])?>' alt='<?=$ar_fields['NAME']?>' title='Купить <?=$ar_fields['NAME']?>'></a></div> <div id='b01-desc'><a href='<?=$ar_fields['DETAIL_PAGE_URL']?>'><?=$ar_fields['NAME']?></a></div> </div> </div> <? } ?> </div> </div> |