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

Пагинация в две стороны

00 голосов
1
На сайте есть раздел события (/events/). На странице выводятся события с помощью news.list. В текущем виде пагинация позволяет сделать переход между предыдущими и следующими событиями. Это код из шаблона вывода новостей.
Код
 <?if($arParams["DISPLAY_BOTTOM_PAGER"]):?>
<?=$arResult['NAV_STRING'];?>
<?endif;?>
<?
$strNavQueryString = ($arResult["NavQueryString"] != "" ? $arResult["NavQueryString"]."&" : "");
$strNavQueryStringFull = ($arResult["NavQueryString"] != "" ? "?".$arResult["NavQueryString"] : "");


if($arResult["NavPageCount"] > 1){?>
<div id="pageNavigation">
<? if($arResult["NavPageNomer"]> 1): ?>
                <a class="pageNavigationLink" style="float: right;margin-right:0" href="<?=$arResult["sUrlPath"]?>?<?=$strNavQueryString?>PAGEN_<?=$arResult["NavNum"]?>=<?=($arResult["NavPageNomer"]-1)?>">Следующие 10</a>
<? endif; ?>

<? if($arResult["NavPageCount"] > $arResult["NavPageNomer"]): ?>
                <a class="pageNavigationLink" style="float: left;margin-right:0" href="<?=$arResult["sUrlPath"]?>?<?=$strNavQueryString?>PAGEN_<?=$arResult["NavNum"]?>=<?=($arResult["NavPageNomer"]+1)?>">Предыдущие 10</a>
<? endif;?>
                <div style="clear: both;"></div>
</div>
<?}?>
Однако нужно, чтобы на этой странице выводились только события с датой не меньше сегодняшней, и при наличии более 10 событий в будущем для них создавалась ссылка на следующую страницу.
А все новости с датой более старой, чем сегодня, были доступны по ссылке "Предыдущие", при чём для них тоже была бы пагинация.
Как это можно сделать? В каком файле исправлять?
По идее, для старых событий в адресе может быть переменная: ?PAGEN=1&events=old или ?PAGEN=1&events=new
Как добавить такую переменную, чтобы по ней определялся порядок вывода новостей (если old, то выводятся старые)
То есть, есть 2 направления листания, и для каждого из них можно переходить в 2 направлениях (ближе/дальше от сегодня)
Придётся сам компонент дописывать?
спросил 14 Сен, 13 от BY (120 баллов)

1 Ответ

00 голосов
Руками сделай, search/page/123 и разбери по разделителю "/" на куски третий кусок и будет страницой
ответил 17 Сен, 13 от Maxag (220 баллов)

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

0 голосов
1 ответ
спросил 17 Янв, 17 от loony (540 баллов)
0 голосов
3 ответов
спросил 26 Март, 14 от Maroon (100 баллов)
0 голосов
3 ответов
спросил 03 Фев, 14 от XpoHo3aBp (860 баллов)
0 голосов
0 ответов
спросил 17 Фев, 20 от аноним
0 голосов
6 ответов
спросил 22 Сен, 13 от NIDORAN (120 баллов)