Что нового

Бесплатно AJAX навигация или подгрузка новостей в {custom}

  • Автор темы Автор темы ravchik
  • Дата начала Дата начала
Осталось адаптировать под версию 17.3
 
Кто-то тестировал на 18.0? Будет работать?)
 
Последнее редактирование:
Такой вопрос:
В DLE шаблоне в категории я вывожу с помощью custom несколько блоков с navigation="yes"
И при навигации в одном custom она также переключается у всех custom блоков на этой странице. (Речь про работу без вашей модификации)
С AJAX навигацией (эти плагином) будет независимая навигация для каждого блока или аналогично как на стандартной?
 
Такой вопрос:
В DLE шаблоне в категории я вывожу с помощью custom несколько блоков с navigation="yes"
И при навигации в одном custom она также переключается у всех custom блоков на этой странице. (Речь про работу без вашей модификации)
С AJAX навигацией (эти плагином) будет независимая навигация для каждого блока или аналогично как на стандартной?
Будет независимая навигация. URL страницы не меняется.
 
Запросы через AJAX, как тут с кешированием обстоят дела? кешируется ли ответ адекватно при переходе на страницы или нет?
 
Добавил кэширование и запоминание последней выбранной страницы при постраничной навигации.
Тут момент один с запоминанием последней выбранной страницы при постраничной навигации.
Можно ли сделать чтобы запоминало только пока ты внутри категории? Тость если вышел с категории например в другую и вернулся обратно, чтобы запоминание сбросилось, так вроде бы логиченее было бы.
 
Тут момент один с запоминанием последней выбранной страницы при постраничной навигации.
Можно ли сделать чтобы запоминало только пока ты внутри категории? Тость если вышел с категории например в другую и вернулся обратно, чтобы запоминание сбросилось, так вроде бы логиченее было бы.
Сделать, конечно, можно... Но мне это не нужно. Напомню, модуль бесплатный, делал для себя, каждому не угодишь... Код открыт, дерзайте)
Запоминие страниц реализовано в JS коде, модернизируйте его для учета категории.
 
Сделать, конечно, можно... Но мне это не нужно. Напомню, модуль бесплатный, делал для себя, каждому не угодишь... Код открыт, дерзайте)
Запоминие страниц реализовано в JS коде, модернизируйте его для учета категории.
Спасибо за помощь в любом случае! Понимаю, предложил только потому что показалось что это стоило бы сделать для всех по дефолту, тк это выглядит логичным (по моему мнению).
 
cache="yes" или
cache="1h" работает же тут?
 
Лишняя кавычка в коде:
<a href=\"/page/{$count_all}}/\" data-id=\"{$id}\" data-page=\"{$count_all}\">{$count_all}</a>

Также кнопка назад показывает не верные стр. Возможно эта строка:
$tpl->set_block( "'\[prev-link\](.*?)\[/prev-link\]'si", ($page != 1) ? "<a href=\"/page/".($page + 1)."/\" data-id=\"{$id}\" data-page=\"".($page - 1)."\">\\1</a>" : "<span>\\1</span>");
 
Лишняя кавычка в коде:
<a href=\"/page/{$count_all}}/\" data-id=\"{$id}\" data-page=\"{$count_all}\">{$count_all}</a>

Также кнопка назад показывает не верные стр. Возможно эта строка:
$tpl->set_block( "'\[prev-link\](.*?)\[/prev-link\]'si", ($page != 1) ? "<a href=\"/page/".($page + 1)."/\" data-id=\"{$id}\" data-page=\"".($page - 1)."\">\\1</a>" : "<span>\\1</span>");
1. Лишней кавычки нет
2. Исправил

 
Тут момент один с запоминанием последней выбранной страницы при постраничной навигации.
Можно ли сделать чтобы запоминало только пока ты внутри категории? Тость если вышел с категории например в другую и вернулся обратно, чтобы запоминание сбросилось, так вроде бы логиченее было бы.
Замените JS-код на код из спойлера
Код:
/* AJAX навигация в custom */
$(document).on('click', 'a[data-page]', function(){
    let id = $(this).data('id'), page = $(this).data('page'), next = ($(this).data('next')) ? this : '';
    custom_navig(id,page,next);
    return false;
})
let matches = window.location.href.match(/\/([^\/?#]+)\/?[?#]?/), ccat = matches && matches[1] ? matches[1] : '';
$(function(){
    $('.custom_block').each(function(){
        let id = $(this).attr('id'), page = localStorage.getItem('custom_'+ccat+id);
        if(page != '1') custom_navig(id, page);
    })
})
function custom_navig(id,page,next){
    let hh = $('.header').height();
    $.get(dle_root + 'engine/ajax/controller.php?mod=custom',{id:id,page:page},function(d){
        if(!next){
            $("#"+id).html(d);
            localStorage.setItem('custom_'+ccat+id,page);
        } else {
            next.closest('[id]').remove();
            $("#"+id).append(d);
            $('html,body').animate({scrollTop: $('#'+id+page).offset().top-(hh*2)},600);
        }
    })
}
Решение временное и не совсем корректное, но пока можно попробовать использовать
 
Последнее редактирование:
Там речь про скобку а не кавычку, я подумал об одном а написал о другом (скобку фигурную ввыделил жирным)
Да, вы правы. Спасибо, исправил. Добавил в Заметки решение по категориям.

 
Интересно, работает ли это на custome-t экспортированных новостях в так называемых вкладках?
как показано на фото

1741688786135.png
 
Верх