Все для DataLife Engine / DLE модули / Бесплатные / DLE модуль AJAX навигация для тега Custom

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качиваний: 184)
  • 100

Комментарии 2

dle9.com от 17 февраля 2014 09:36
Цитата: qunser
У вас случаем на сайте не найдётся модуль Ротатор баннеров DLE, который работал бы на 10.1 версии ? Может есть старые модули, но рабочие, пока только 1 установил и он показывает ошибки, не рабочий.


Есть только такой вариант Установка DLE Ротатор баннера

Других опубликованных нет, но есть не опубликованные два для любых версий движка дле, будут добавлены в течение месяца
qunser от 17 февраля 2014 03:22
У вас случаем на сайте не найдётся модуль Ротатор баннеров DLE, который работал бы на 10.1 версии ? Может есть старые модули, но рабочие, пока только 1 установил и он показывает ошибки, не рабочий.
Добавить комментарий

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

    • bowtiesmilelaughingblushsmileyrelaxedsmirk
      heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
      winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
      worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
      expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
      disappointedconfoundedfearfulcold_sweatperseverecrysob
      joyastonishedscreamtired_faceangryragetriumph
      sleepyyummasksunglassesdizzy_faceimpsmiling_imp
      neutral_faceno_mouthinnocent