CrewGer
@CrewGer
Начал Битрикс

Как вывести список товаров без фото из нескольких категорий?

Всем привет!
Делаю так:
CModule::IncludeModule("iblock");

$IBLOCK_ID=10;  //ID нужного информационного блока

$SECTION_ID = Array('861', '1496', '1543'); // 1566, 1202, 1208, 1242, 1275, 1284, 1285, 1289, 1300, 1181, 1375);

$arSelect = Array("ID", "NAME", "PREVIEW_PICTURE", "DETAIL_PICTURE", "DETAIL_PAGE_URL", "IBLOCK_SECTION_ID"); // Указываем список параметров, которые будем использовать

$arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y"); // Указываем параметры фильтра, по которым будем выводить элементы

$res = CIBlockElement::GetList(Array("SORT"=>"ASC"), $arFilter, false, array("nPageSize" => 10), $arSelect); // Вызов 

$res->NavStart(0);

while($ob = $res->GetNextElement())
{
	$arFields = $ob->GetFields();
	if (!isset($arFields["PREVIEW_PICTURE"]) && in_array($arFields['IBLOCK_SECTION_ID'], $SECTION_ID)) {

		//echo 'Выводим путь к изображению превью: '.CFile::GetPath($arFields["PREVIEW_PICTURE"]).'" и имя: '.$arFields["NAME"].'.<br>';
		//echo 'Выводим путь к детальному изображению: '.CFile::GetPath($arFields["DETAIL_PICTURE"]).'<br>';
		//echo 'Выводим пользовательсткое свойство инфоблока: '.$arFields["PROPERTY_YOUTUBELINK_VALUE"].' (в данном случае ссылка на ролик youtube)<br>';

		echo "<pre>";
		echo $arFields["ID"].' - <a href="'.$arFields["DETAIL_PAGE_URL"].'" target="_blank"><span>'.$arFields["NAME"].'</a></span> - '.$arFields["IBLOCK_SECTION_ID"];
		echo "</pre>";

		//print_r($arSelect);
		/* *** */

		/* *** */
	}
}
echo $res->NavPrint();


Выводит товары только из одного раздела, не понятно почему.
Хелп плиз!
  • Вопрос задан
  • 210 просмотров
Решения вопроса 1
@anton99zel Куратор тега 1С-Битрикс
29а класс средней школы №7
UPDATE:
<?
require_once($_SERVER['DOCUMENT_ROOT']."/bitrix/modules/main/include/prolog_before.php");
CModule::IncludeModule("iblock");
$arSelect = Array("NAME", "ID", "DETAIL_PAGE_URL", "SECTION_ID");
$arFilter = Array("IBLOCK_ID"=>10, "SECTION_ID"=>'69, 114', "INCLUDE_SUBSECTIONS" => "Y", "PREVIEW_PICTURE" => false);
$res = CIBlockElement::GetList(Array("ID"=>"DESC"), $arFilter, false, Array("nPageSize"=>500000), $arSelect);
while($ob = $res->GetNextElement())
{
$arFields = $ob->GetFields();
{?>
<?=$arFields[ID]?> - <a href="<?=$arFields[DETAIL_PAGE_URL]?>"><?=$arFields[NAME]?></a>
 - Подраздел №<?=$arFields[IBLOCK_SECTION_ID]?></br>
<?}
}
?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@freekirill
Пишу под Битрикс
Нужно указать параметр в фильтре
$arFilter = Array("IBLOCK_ID"=>$IBLOCK_ID, "SECTION_ID"=>$SECTION_ID, "ACTIVE_DATE"=>"Y", "ACTIVE"=>"Y");

Так же "nPageSize" => 10 - стоит что говорит показывать только первые 10 элементов из массива

Так же добавить желательно параметр 'INCLUDE_SUBSECTIONS'=>'Y', в $arFilter что бы элементы брались и из папок не только из корня.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы