Постраничная навигация на странице детального просмотра в Битрикс

Решение, как сделать ссылки (кнопки) для перехода к следующей и предыдущей новости (элементу инфоблока) в 1С-Битрикс на детальной странице

Постраничная навигация на странице детального просмотра

На детальной странице новости или на карточке товара в каталоге, сделать кнопки (ссылки) перехода на следующую или предыдущую страницу. 
Решение:
Рассмотрим на примере комплексного компонента bitrix:news, редактируем шаблон детальной страницы news.detail:

1  Файл result_modifier.php
$items_prev = CIBlockElement::GetList(
       Array("ID"=>"DESC"),
       Array("IBLOCK_ID"=>$arResult["IBLOCK_ID"], "ACTIVE"=>"Y", "<ID"=>$arResult["ID"]),
       false,
       Array("nTopCount"=>1),
       Array("DETAIL_PAGE_URL", "NAME")
);
$arResult['PREV_POST'] = $items_prev->GetNext();


$items_next = CIBlockElement::GetList(
       Array("ID"=>"ASC"),
       Array("IBLOCK_ID"=>$arResult["IBLOCK_ID"], "ACTIVE"=>"Y", ">ID"=>$arResult["ID"]),
       false,
       Array("nTopCount"=>1),
       Array("DETAIL_PAGE_URL", "NAME")
);
$arResult['NEXT_POST'] = $items_next->GetNext();
2 Файл template.php
<div class="post-next-prev">
	<?if($arResult['PREV_POST']):?>
		<div class="post-prev"><a href="/<?=$arResult['PREV_POST']['DETAIL_PAGE_URL']?>" title="<?=$arResult['NEXT_POST']['NAME']?>">Следующая новость →</a></div>
	<?endif?>
	<?if($arResult['NEXT_POST']):?>
		<div class="post-next"><a href="/<?=$arResult['NEXT_POST']['DETAIL_PAGE_URL']?>" title="<?=$arResult['PREV_POST']['NAME']?>">← Предыдущая новость</a></div>
	<?endif?>
</div>


Комментарии (0)

Похожие решения:
Изменено: 24 05 2021
Просмотров: 3523