Pour DLE, il existe plusieurs modules payants pour la navigation AJAX ou le chargement AJAX d'actualités dans {custom} . Mais nous le voulons gratuitement, nous avons donc décidé de créer le nôtre. Après y avoir réfléchi, j'ai décidé de ne pas être intelligent et j'ai pris comme base un ancien article de Sander - Navigation AJAX dans la balise personnalisée - implémentation . J'ai adapté, ajouté, ajouté, soustrait et voilà ce qui s'est passé...
Le module prend en charge la mise en cache des pages (un cache séparé pour chaque page) et la mémorisation des pages dans la navigation entre les pages.
Installation:
1. Installez le module via le système de plugins.
2. Ajoutez au fichier JS de votre modèle:
/* AJAX навигация в custom */
var cn = localStorage.getItem('custom_nav'), hh = $('.header').height(); // читаем запись в localStorage и получаем высоту header'а (заменить на свой класс при необходимости)
if(cn) { // если запись есть
var cid = cn.split(',')[0], cp = cn.split(',')[1]; // получаем параметры
if(cp == '1') localStorage.removeItem('custom_nav');
else custom_navig(cid,cp); // вызываем функцию, если не первая страница
}
function custom_navig(id,p,t){
$.get('engine/ajax/controller.php?mod=custom',{id:id,page:p},function(d){
if(t){ // если это подгрузка
t.remove(); // удаляем кнопку подгрузки
$("#"+id).append(d); // добавляем контент в блок с custom
localStorage.removeItem('custom_nav'); // удаляем запись в localStorage
} else { // если это постраничная навигация
$("#"+id).html(d); // заменяем содержимое блока на полученные данные
localStorage.setItem('custom_nav', id+','+p); // пишем в localStorage
}
// прокручиваем страницу до разделителя/начала блока
$('html,body').animate({scrollTop: $('#'+id+p).offset().top-(hh*2)}, 600);
})
}
<div id="lenta">{custom idblock="lenta" navtpl="custom_nav"}</div>
[next]Теxтe[/next] pour générer un lien pour le chargement
[prev-link]Теxтe[/prev-link] pour afficher un lien vers la page précédente
[next-link]Теxтe[/next-link] pour afficher un lien vers la page suivante
{pages} pour afficher la liste des pages
PS: Testé uniquement sur DLE 17 , mais en théorie cela devrait fonctionner sur les versions antérieures.
• Auteur: ravchik
• Version DLE: 17.0