Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
то ждем ваше обращение в нашей службе тех поддержки.
Автоматическая подгрузка страницы вместо привычной пагинации с подачи социальных сетей вошла в моду. Многие заказчики хотят видеть этот способ отображения на своих сайтах. Не факт, что она всегда удобна и уместна. Иной раз может создавать трудности с поиском нужной записи, да и дополнительных ресурсов требует. Но как бы то ни было, а спрос на это решение есть. Давайте рассмотрим, как его реализовать.
1. Шаблон промотки вместо пагинации
Разместим по адресу /bitrix/templates/.default/components/bitrix/system.pagenavigation.
файл template.php, содержащий код
2. Сбросим буфер Ajax
В файл в файл result_modifier.php добавим код
3. А этот код отменит выполнение Ajax - запроса
Для этого добавим код в файл omponent_epilog.php
4. Вывод бесконечного скроллинга
В подходящее место в коде страницы поместим код JS
Готово!
Назад в раздел
1. Шаблон промотки вместо пагинации
Разместим по адресу /bitrix/templates/.default/components/bitrix/system.pagenavigation.
файл template.php, содержащий код
<?if(!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED!==true)die(); $this->setFrameMode(true); if(!$arResult["NavShowAlways"]) { if ($arResult["NavRecordCount"] == 0 || ($arResult["NavPageCount"] == 1 && $arResult["NavShowAll"] == false)) { return; } } $strNavQueryString = ($arResult["NavQueryString"] != "" ? $arResult["NavQueryString"]."&" : ""); ?> <?if($arResult["bDescPageNumbering"] === true):?> <?if ($arResult["NavPageNomer"] > 1):?> <a href="<?=$arResult["sUrlPath"]?>?<?=$strNavQueryString?>PAGEN_<?=$arResult["NavNum"]?>=<?=($arResult["NavPageNomer"]-1)?>" id="infinity-next-page">еще</a> <?endif?> <?else:?> <?if($arResult["NavPageNomer"] < $arResult["NavPageCount"]):?> <a href="<?=$arResult["sUrlPath"]?>?<?=$strNavQueryString?>PAGEN_<?=$arResult["NavNum"]?>=<?=($arResult["NavPageNomer"]+1)?>" id="infinity-next-page">еще</a> <?endif?> <?endif?>
2. Сбросим буфер Ajax
В файл в файл result_modifier.php добавим код
if (array_key_exists('is_ajax', $_REQUEST) && $_REQUEST['is_ajax']=='y') { $APPLICATION->RestartBuffer(); }
3. А этот код отменит выполнение Ajax - запроса
Для этого добавим код в файл omponent_epilog.php
if (array_key_exists('is_ajax', $_REQUEST) && $_REQUEST['is_ajax']=='y') { die(); }
4. Вывод бесконечного скроллинга
В подходящее место в коде страницы поместим код JS
$(document).on('ready', function(){ var loading = false; $(window).scroll(function() { if ($('#infinity-next-page').size() && !loading) { if ($(window).scrollTop()+100 >= $(document).height()-$(window).height()) { loading = true; $.get($('#infinity-next-page').attr('href'), {is_ajax: 'y'}, function(data){ $('#infinity-next-page').after(data); $('#infinity-next-page').remove(); loading = false; }); } } }); });
Готово!
Назад в раздел
Подписаться на новые материалы раздела: