Если у вас возникли какие либо вопросы которые вы не смогли решить по нашим публикациям самостоятельно,
то ждем ваше обращение в нашей службе тех поддержки.
Наверх
то ждем ваше обращение в нашей службе тех поддержки.
Автоматическая подгрузка страницы вместо привычной пагинации с подачи социальных сетей вошла в моду. Многие заказчики хотят видеть этот способ отображения на своих сайтах. Не факт, что она всегда удобна и уместна. Иной раз может создавать трудности с поиском нужной записи, да и дополнительных ресурсов требует. Но как бы то ни было, а спрос на это решение есть. Давайте рассмотрим, как его реализовать.
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;
});
}
}
});
});
Готово!
Назад в раздел
Подписаться на новые материалы раздела:
Загрузка...
Наверх