mrvinil
5/13/2019 - 4:14 PM

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

<?
/* Фильтр записей инфоблока
(если используется рабиение по разделам,
то к фильтру нужно добавить
"SECTION_ID" => $arResult['IBLOCK_SECTION_ID']) */

$arFilter = array("IBLOCK_ID" => $arResult['IBLOCK_ID']);
// Выбиреам записи
$rs = CIBlockElement::GetList(array("SORT" => "ASC"), $arFilter, false, false, array('ID', 'NAME', 'DETAIL_PAGE_URL'));
$i = 0;
while ($ar = $rs->GetNext())
{
	$arNavi[$i] = $ar;
	// Если ID полученной записи равен ID новости которая отображается, то запоминаем ее номер
	if ($ar['ID'] == $arResult['ID']) $iCurPos = $i;
	$i++;
}
// Заполняем массив информацией о следующей и предыдущей записи
// Ключ предыдущего элемента будет [$iCurPos - 1]
// Ключ следующего элемента будет [$iCurPos + 1]
// Если элементы массива с этими ключами существуют то сохраняем их, иначе осталяем пустыми
// $arLink - массив со ссылками на след и предыд новости
$arLink = array();
$arLink['PREVIOUS'] = isset($arNavi[$iCurPos - 1]) ? $arNavi[$iCurPos - 1] : '';
$arLink['NEXT'] = isset($arNavi[$iCurPos + 1]) ? $arNavi[$iCurPos + 1] : '';
?>

<? if (is_array($arLink['PREVIOUS'])): ?>
	<a href="<?= $arLink['PREVIOUS']['DETAIL_PAGE_URL'] ?>" class="ln"><?= $arLink['PREVIOUS']['NAME'] ?></a>
<? endif; ?>

<? if (is_array($arLink['NEXT'])): ?>
	<a href="<?= $arLink['NEXT']['DETAIL_PAGE_URL'] ?>" class="rn"><?= $arLink['NEXT']['NAME'] ?></a>
<? endif; ?>