Dleshka.org
Авторизация

Хак Хак AJAX навигация для тега Custom

+2
TipTop 2-01-2014 Хаки DLE 0 комментариев
Хак AJAX навигация для тега Custom


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

Для установки проделываем несколько действий
Открыть файл 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));
    }



В папке engine/ajax/ создать файл custom.php с содержимым:
custom.php



В папке engine/modules/ создать файл custom_navigation.php с содержимым:
custom_navigation.php



В любом подключенном к шаблону JS файле прописать код функции:
function custom_navigation(id,p){
    $.get(dle_root+"engine/ajax/custom.php",{id:id,page:p},function(d){
        $("#"+id).html(d);
    });
    return false;
}



И основная часть - шаблон:
<div id="custom-ajax-test">
    &#123;custom category="8" from="0" limit="5" idblock="custom-ajax-test"}
    &#123;include file="engine/modules/custom_navigation.php?id=custom-ajax-test"}
</div>


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

Настройку стилей и шаблонов возложу на ваши хрупкие плечи. Уверен, вы справитесь ;)

С уважением,
Олег Александрович a.k.a. Sander
Информация
Зарегистрируйтесь чтобы комментировать публикацию.
Авторизация