Полезные статьи о разработке сайтов от вебмастера
Категория:
В предыдущей статье я рассказал о том, как сделать вывод списка «Товары в той же категории» на движке 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 товаров (максимум) из той же категории, что и просматриваемый в данный момент товар. Как видите ничего сложного
Кстати, очень интересно:
Данный блог создан с целью помочь, как начинающему вебмастеру, так и опытному разработчику, в решении проблем возникающих при разработке сайтов. Здесь Вы прочитаете полезные статьи о том, как грамотно произвести SEO оптимизацию своего сайта, и найдёте важные исследования в сфере интернет-маркетинга. Научитесь писать собственные компоненты и модули для известных CMS, а также узнаете интересные методы работы с Фреймворками, CSS, HTML, jQuery и PHP. Из записей блога вы поймёте как грамотно разрабатывать макеты сайтов и что такое валидная вёрстка. БЛОГZOR – поможет Вам стать web-Гуру и понять тонкости веб-мастеринга.
Комментариев к записи: 5
19 Октябрь 2011 в 5:16 пп
Спасибо за урок, бро!
НЕ подскажите как в bitrix вывести заданную категорию на произвольной странице? По этой системе нормальных руководств днем согнем.
blogz0r Ответил:
20 Октябрь 2011 в 12:57 пп
Точно также как написано выше, только в строке $arFilter = Array(‘SECTION_ID’ => $SECTION_ID); вместо $SECTION_ID, указываете нужную вам категорию, например – $arFilter = Array(‘SECTION_ID’ => ’1337′);.
И чтобы выводились все элементы категории, а не 6 замените строку while(($link_el = $link_els->GetNextElement())&&($iGetNextElement()){
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);