Мы в твиттере Мы в телеграме!

Провеббер » DataLife Engine » DLE модули » AJAX навигация для тега Custom

Набор в команду! Ведется набор в команду, для наполнения сайта новым, интересным контентом. Если у тебя есть предложения, свободное время, ты обладаешь интересным контентом, и хочешь поделиться с другими?
Обращайся к нам в ЛС группы Вконтакте.

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

Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно AJAX навигация для тега Custom.

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

По факту, полноценная навигация в теге Custom невозможна. Однако можно ее сделать с помощью "костылей".
Вот решил поделиться с вами данной реализацией в качестве подарка. С Новым Годом!

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

Собственно пример работы можете посмотреть у меня на демо сайте d101.sandev.pro
А так же добавил его тут, на sandev.pro в блоке Топ дня

Установка
Открыть файл 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 с содержимым:


В папке engine/modules/ создать файл 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">
    {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 являются строго обязательными к заполнению, в том числе from="0"

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

С уважением,
Олег Александрович a.k.a. Sander


Дополнительные ссылки на скачивание ТОЛЬКО для зарегистрированных


+20
Просмотры: 7 495 :: Комментарии (11) :: :: Нужна помощь? Задайте вопрос на форуме ::
Теги: Sander, custom, navigation
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

#1D0Gmatist

  • 2 января 2014 14:21
  • Регистрация: 28.07.2012
  • Был(а) онлайн: 24.06.2021
  • Комментариев: 291
  • 0
Вот это подарок ... я две недели ломал голову 50% кода написал для навигации по кустому .. а тут всё уже есть ... спасибо )))

--------------------

#2Pan_Oleksandr

  • 2 января 2014 16:09
  • Регистрация: 8.08.2013
  • Был(а) онлайн: 10.02.2024
  • Комментариев: 10
  • 0
Здраствуйте. Может ктото помочь с настройкой стиля для навигации, а то не отображаетса сам стиль просто символи и все. Мой navigation.tpl вигледит вот так

<div class="navigation">
<span class="lcol navi_pages">{pages}</span>
<span class="rcol">
[prev-link]<span>Попередня</span>[/prev-link]  [next-link]
Наступна[/next-link]
</span>
</div>




#3Pan_Oleksandr

  • 2 января 2014 17:54
  • Регистрация: 8.08.2013
  • Был(а) онлайн: 10.02.2024
  • Комментариев: 10
  • 0
Вопрос изчерпан. Все зделал сам) Спасиб за хак/модуль)

#4nke

  • 3 января 2014 11:30
  • Регистрация: 31.03.2011
  • Был(а) онлайн: 10.03.2020
  • Комментариев: 20
  • 0
Действительно очень хорошая штукенция ... Огромное вам спасибо . Все работает идеально !!!

--------------------

#5donna

  • 3 января 2014 22:44
  • Регистрация: 11.11.2013
  • Был(а) онлайн: 11.02.2014
  • Комментариев: 6
  • 0
D0Gmatist,
Если это поставить в кустом твоя фича будет работать ???
https://prowebber.ru/dle/hacks/16100-dopolnitelnye-funkcii-v-page.html

#6Sander

  • 4 января 2014 11:43
  • Регистрация: 19.02.2010
  • Был(а) онлайн: 20.04.2021
  • Комментариев: 327
  • +4
donna,
Строку в файле навигации:
echo "<div class=\"navigation\">".$pervpage.implode("",$s
idepage).$nextpage."</div>";

Заменить на
echo "<div class=\"navigation\">".$pervpage.implode("",$s
idepage).$nextpage."<span>".(($page-1)*$custom_l
imit)." - ".($page*$custom_limit)." из ".$count_all."</span></div>";



И еще, только обратил внимание, маленький FIX
После строки:
$count_all = ceil($count_all['c']/$custom_limit);

Вставить:
$_SESSION['custom_'.$id]['count_all'] = $count_all;

--------------------

#7Pan_Oleksandr

  • 10 января 2014 19:42
  • Регистрация: 8.08.2013
  • Был(а) онлайн: 10.02.2024
  • Комментариев: 10
  • 0
Sander, а как можно вивести навигацию в отдельний блок?

#8Andy80

  • 26 января 2014 01:22
  • Регистрация: 28.01.2011
  • Был(а) онлайн: 4.02.2017
  • Комментариев: 28
  • 0
После клика на следующую страницу (самый первый клик) пропадает контент. Остается только панель навигации (номера страниц и вперед-назад, последняя и т.д.).
В чем может быть причина?

#9Sander

  • 1 февраля 2014 22:19
  • Регистрация: 19.02.2010
  • Был(а) онлайн: 20.04.2021
  • Комментариев: 327
  • 0
Andy80,
Если б все было идеально, вряд ли решение было бы в паблике.
Параметры custom запроса записываются в сессии пользователя при открытии страницы.
Если пользователь долго не заходил на сайт, потом зайдя попытается перейти по страницам навигации, то скрипт вернет пустоту, потому что значения сессии удалились а с ними и параметры тега custom.

--------------------

#10Andy80

  • 1 февраля 2014 23:14
  • Регистрация: 28.01.2011
  • Был(а) онлайн: 4.02.2017
  • Комментариев: 28
  • 0
Sander,
Все дело в том, что это происходит при первой попытке перелистывания. В сессии и значений таких не было ранее.

#11XyuAdmin

  • 16 ноября 2014 19:22
  • Регистрация: 16.11.2014
  • Был(а) онлайн: 5.04.2024
  • Комментариев: 30
  • 0
х*якс навигация)) по сабжу. хороший модуль

Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.

Архив новостей
Ноябрь 2024 (1)
Октябрь 2024 (171)
Сентябрь 2024 (13)
Август 2024 (61)
Июль 2024 (12)
Июнь 2024 (30)

Последние комментарии: