Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Предыдущий и следующий элементы раздела

00 голосов
4
Привет всем. На сайте, при детальном просмотре товара нужно поставить навигацию по типу "предудущий элемент - следующий элемент", имеется ввиду товар этой же группы. Методы какого класса для этих целей лучше всего использовать, может кто сталкивался? Буду благодарен.
спросил 24 Дек, 13 от Humanka (100 баллов)

4 Ответы

00 голосов
CIBlockElement::GetList()
Сортировать так же, как при просмотре секции.
ответил 15 Март, 14 от Pomnep (13,960 баллов)
00 голосов
спасибо, но я уже написал как:
Код
$sql = mysql_query("select IBLOCK_ELEMENT_ID from `b_iblock_section_element`
   where IBLOCK_SECTION_ID = '".$arResult["IBLOCK_SECTION_ID"]."' and IBLOCK_ELEMENT_ID in 
   (select ID from `b_iblock_element` where ACTIVE = 'Y' and WF_PARENT_ELEMENT_ID is NULL)") or die(mysql_error());
    
   if (mysql_num_rows($sql) > 1)
   {
      $mas = array();
      while ($f = mysql_fetch_assoc($sql)) 
      {
        $mas[] += $f['IBLOCK_ELEMENT_ID'];            
      }
      foreach ($mas as $key=>$val)
         if ($val == $arResult['ID']) $bigkey = $key;
      
   //prev   
   if (isset($mas[$bigkey-1])) 
    {
      ?>
       <a href="<?=$arResult["SECTION"]["SECTION_PAGE_URL"]?>&ELEMENT_ID=<?=$mas[$bigkey-1]?>"><< предыдущий товар</a>
       <?php    
     }
   //next
   if (isset($mas[$bigkey+1])) 
    {
      ?>
       <a href="<?=$arResult["SECTION"]["SECTION_PAGE_URL"]?>&ELEMENT_ID=<?=$mas[$bigkey+1]?>">следующий товар >></a>
       <?php    
     }
   }

Конечно не по битриксовским стандартам, но работает учитывая активные...
ответил 06 Июль, 14 от Humanka (100 баллов)
00 голосов
Не забываем и о таком:
http://www.1c-bitrix.ru/support/faq/faq.php?ID=2374#41483
ответил 06 Ноя, 14 от sickmind (4,660 баллов)
00 голосов
За такой запросец админ сервака Вас расстреляет, как только число элементов инфоблоков дойдет хотя бы до тысячи. Зачем Вы в подзапросе выбираете ВСЕ активные элементы ВСЕХ инфоблоков? Про то, что будет, если Вы модуль документооборота добавите - вообще молчу.
Тем более, что задачи Вашей этот кусок кода не решает. Вам надо предыдущий и последующий элемент. Ваш запрос возвращает элементы в СЛУЧАЙНОМ порядке, а не в таком, как они выводятся в разделе каталога на сайте.
ответил 05 Март, 15 от Pomnep (13,960 баллов)

Похожие вопросы

0 голосов
4 ответов
спросил 16 Дек, 13 от Marc (100 баллов)
0 голосов
6 ответов
0 голосов
3 ответов
0 голосов
3 ответов
0 голосов
2 ответов
спросил 18 Апр, 14 от kakashka1 (340 баллов)