$rsSections = CIBlockSection::GetList(
Array(),
Array(
"IBLOCK_ID" => "Твой инфоблок",
"SECTION_ID" => "ID раздела-родителя",
"DEPTH_LEVEL" => "2" //Скорее всего будет 2, не помню с 0 или с 1 считается
)
);
while($arSection => $rsSections->GetNext()) {
//перебираешь секции и формируешь массив для меню.
}
<? $APPLICATION->ShowHead(); ?>
$APPLICATION->ShowMeta("robots", false, $bXhtmlStyle);
// $APPLICATION->ShowMeta("description", false, $bXhtmlStyle);
$APPLICATION->ShowLink("canonical", null, $bXhtmlStyle);
$APPLICATION->ShowCSS(true, $bXhtmlStyle);
$APPLICATION->ShowHeadStrings();
$APPLICATION->ShowHeadScripts();
$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;
}
}
//Код писал прям тут поэтому что-то может не работать :)
.DS_Store
Thumbs.db
/.idea/
/bitrix/*
/upload/*
/local/templates/tmpl/*.css
/sitemap*
node_modules/*
package-lock.json
.gitignore
/img/*
/local/templates/tmpl/*.css
/sitemap*
node_modules/*
package-lock.json
/img/*
Элемент объединяет все предложения, которые являются вариациями одной модели и должен иметь одинаковое значение. Значение должно быть целым числом, максимум 9 знаков.
Является атрибутом элемента offer.
$uniqueId = $item['ID'].'_'.md5($this->randString().$component->getAction());
//$item['ID'] - ID товара
//$this->randString() - рандомная строка
//$component->getAction() - по документации "Метод возвращает название текущего действия."
//Ниже пример подключения JS к списку товаров
$obName = 'ob'.preg_replace('/[^a-zA-Z0-9_]/', 'x', $this->GetEditAreaId($navParams['NavNum'])); //название переменной в которой, помещен JS-объект с логикой компонента.
//Ну и создание объекта в который передаются параметры.
var <?=$obName?> = new JCCatalogSectionComponent({
siteId: '<?=CUtil::JSEscape($component->getSiteId())?>',
componentPath: '<?=CUtil::JSEscape($componentPath)?>',
navParams: <?=CUtil::PhpToJSObject($navParams)?>,
deferredLoad: false, // enable it for deferred load
initiallyShowHeader: '<?=!empty($arResult['ITEM_ROWS'])?>',
bigData: <?=CUtil::PhpToJSObject($arResult['BIG_DATA'])?>,
lazyLoad: !!'<?=$showLazyLoad?>',
loadOnScroll: !!'<?=($arParams['LOAD_ON_SCROLL'] === 'Y')?>',
template: '<?=CUtil::JSEscape($signedTemplate)?>',
ajaxId: '<?=CUtil::JSEscape($arParams['AJAX_ID'])?>',
parameters: '<?=CUtil::JSEscape($signedParams)?>',
container: '<?=$containerName?>'
});
CFile::GetFileArray($ID); // Где ID это этот ID файла.