Список товаров в той же категории на странице описания товара, Bitrix

Категория: Bitrix| Веб-программирование

7 Авг 2011

В предыдущей статье я рассказал о том, как сделать вывод списка «Товары в той же категории» на движке WebAsyst. Теперь же появилась необходимость сделать такое же дополнение со случайным списком, но уже для Bitrix CMS.

Тут всё не на много сложнее :) Нам нужен файл который отвечает за отображение товара, этот файл находится в директории – /bitrix/templates/ваша_тема/iblock/catalog/element.php. В самом низу этого файла добавляем :

<p>Товары в той же категории:</p>

Далее пойдёт вывод, добавляем следующие строки :

<?
$arFilter = Array('SECTION_ID' => $SECTION_ID);
$arSort = Array('RAND' => 'ID');
$arSelect = Array(
"ID",
"NAME",
"IBLOCK_ID",
"DETAIL_PAGE_URL",
"PREVIEW_PICTURE",
"DETAIL_PICTURE"
);
$link_els = CIBlockElement::GetList($xarSort, $xarFilter, false, false, $xarSelect);
 ?>

Так мы получим список, далее уже пора начать его выводитьжешь!  Так приступим:

<?
$i = 1;
while(($link_el = $link_els->GetNextElement())&&($i<7)){
$i++;
$link_el_fields = $link_el->GetFields();
$rsFile = CFile::GetByID($link_el_fields["PREVIEW_PICTURE"]);
$arFile = $rsFile->Fetch();
if(!$arFile){
$rsFile = CFile::GetByID($link_el_fields["DETAIL_PICTURE"]);
$arFile = $rsFile->Fetch();
}

?>
<a href="<?=$link_el_fields["DETAIL_PAGE_URL"]?>"><?=$link_el_fields["NAME"]?></a><br>
<img src="/upload/<?=$arFile['SUBDIR']?>/<?=$arFile['FILE_NAME']?>" width="<?=$width?>" />
<?
}
?>

Такой способ выводит 6 товаров (максимум) из той же категории, что и просматриваемый в данный момент товар. Как видите ничего сложного :)

Кстати, очень интересно:

Опубликовать в twitter.com Опубликовать в своем блоге livejournal.com Поделится ссылкой на yandex.ru

Комментариев к записи: 5

дмирий

19 Октябрь 2011 в 5:16 пп

Спасибо за урок, бро!
НЕ подскажите как в bitrix вывести заданную категорию на произвольной странице? По этой системе нормальных руководств днем согнем.

blogz0r Ответил:

Точно также как написано выше, только в строке $arFilter = Array(‘SECTION_ID’ => $SECTION_ID); вместо $SECTION_ID, указываете нужную вам категорию, например – $arFilter = Array(‘SECTION_ID’ => ’1337′);.

И чтобы выводились все элементы категории, а не 6 замените строку while(($link_el = $link_els->GetNextElement())&&($iGetNextElement()){

ilianna.ru

23 Сентябрь 2013 в 8:35 дп

Советую заменить цикл на foreach, ибо на извращение походит…

Андрей

21 Февраль 2014 в 1:55 дп

А не подскажете как в этот список вывести цену товара? Заранее спасибо.

Сергей

16 Февраль 2015 в 9:13 пп

Ваш код объявляет следующие массивы

$arFilter = Array(‘SECTION_ID’ => $SECTION_ID);
$arSort = Array(‘RAND’ => ‘ID’);

А использует вообще что то левое:
$link_els = CIBlockElement::GetList($xarSort, $xarFilter, false, false, $xarSelect);

Написать комментарий

Вы должны Войти, чтобы оставить комментарий.

О блоге

Данный блог создан с целью помочь, как начинающему вебмастеру, так и опытному разработчику, в решении проблем возникающих при разработке сайтов. Здесь Вы прочитаете полезные статьи о том, как грамотно произвести SEO оптимизацию своего сайта, и найдёте важные исследования в сфере интернет-маркетинга. Научитесь писать собственные компоненты и модули для известных CMS, а также узнаете интересные методы работы с Фреймворками, CSS, HTML, jQuery и PHP. Из записей блога вы поймёте как грамотно разрабатывать макеты сайтов и что такое валидная вёрстка. БЛОГZOR – поможет Вам стать web-Гуру и понять тонкости веб-мастеринга.

Последние комментарии

  • Амир: форма появилась на сайте, но письмо не приходит на [...]
  • Ян: Все нравится, единственное, раскрывающийся блок мо [...]
  • СПАСИБО!: Спасибо тебе! Замечательная функция. очень помогла [...]
  • Алексей: Подскажите, а как заставить этот скрипт отработать [...]
  • Дмитрий: Заработало, надо было малость поменять путь в conf [...]

Можно Скачать