DLE модуль AJAX навигация для тега Custom


Первоклассный на https://dle9.com/ представляем DLE модуль AJAX навигация для тега Custom — это блок выводимый тегом Custom, где новости будут иметь навигацию на AJAX, при выборе страницы обновление происходит только в блоке, а вся страница остается прежней.
Хотя по сути полноценная навигация при помощи тега Custom невозможна, но если воспользоваться маленькими хитростями "костылями" можно сделать такую реализацию.

Принцип работы модуля дле: в момент создания самого новостного блока Custom идет перехват и обработка его параметров с последующим сохранением в сессии. В результате мы получаем полноценно работающую навигацию и полностью скрытый от пользователя код. Но как и любой костыль, этот тоже имеет свой недостаток. Т.к. параметры хранятся в сессии, то по истечении времени хранения сессии пользователю надо будет обновить страницу сайта, чтобы навигация работала и блок отображался.

Установка
В папку engine/ajax/ добавить из архива файл custom.php
В папку engine/modules/ добавить из архива файл custom_navigation.php

В любом подключенном к шаблону JS файле добавить код функции или создать файл в папке js/libs.js прописать в main.tpl в самом начале
<script type="text/javascript" src="/templates/Default/js/libs.js"></script>
до тега head, а в созданном файле js/libs.js добавить код ниже:
function custom_navigation(id,p){
    $.get(dle_root+"engine/ajax/custom.php",{id:id,page:p},function(d){
        $("#"+id).html(d);
    });
    return false;
}


Открыть файл engine/modules/functions.php
Найти строку:
    $sql_select .= " WHERE ".implode(' AND ', $where)." ORDER BY " . $fixed . $news_sort . " " . $news_msort . " LIMIT " . $custom_from . "," . $custom_limit;

ПЕРЕД ней вставить:
    if(preg_match("#idblock=['"](.+?)['"]#i",$param_str,$match)){
        $_SESSION['custom_'.$match[1]] = array("string"=>$param_str,"where"=>implode(' AND ', $where));
    }


И основная часть - шаблон файла navigation.tpl:
<div id="custom-ajax-test">

{custom category="8" from="0" limit="5" idblock="custom-ajax-test"}
{include file="engine/modules/custom_navigation.php?id=custom-ajax-test"}

</div>


Обратите внимание, что custom-ajax-test будет 3 раза повторяться. Это и есть ID блоки в котором меняются страницы.
Обратите внимание на то, что последние 3 параметра тега custom т.е. (category="8" from="0" limit="5") являются строго обязательными к заполнению, в том числе from="0"

Оформление стилей и шаблонов делать придется вам самим. Уверен, вы справитесь ;)
Версия DataLife Engine 10
С уважением,
Олег Александрович a.k.a. Sander

Скачать у нас модули для dle, как DLE модуль AJAX навигация для тега Custom

AJAX-navigaciya-dlya-tega-Custom.rar [15,14 Kb] (cкачиваний: 169)
{rating-num}0

Комментарии (0)

Оставить комментарий

Кликните на изображение чтобы обновить код, если он неразборчив