Содержание
Сегодня мы рассмотрим возможность добавления себе на сайт юзабельную кнопку, которая позволяет заменить стандартный функционал переключения страниц материалов модулей. Исключает необходимость переходить между страницами модуля и подгружать быстро материалы в одном месте по клику по кнопке.
Скрипт поддерживается лишь в следующих модулях:
В модулях блог и новости установка требуется в шаблонах:
В модулях каталогах (файлов, статей, сайтов, объявлений и игр), установка требуется в шаблонах:
Важно! Скрипт пример ниже использовать только в модулях каталогах (файлов, стетей, сайтов, объявлений и игр).
Приступаем непосредственно к установке скрипта, вам в перечисленных шаблонах на шаге, который описан немного выше требуется найти оператор:
$BODY$
И заменить его на следующий код:
<div id="contik">$BODY$</div> <div style="display:none;" id="selector">$PAGE_SELECTOR$</div> <script type="text/javascript"> if ($("#selector").find(".swchItem:contains('»')").text() == '»') { $("#selector").after('<br><div id="nextCont" class="input_submit alt"><div onclick="Conti.to();" style="padding:3px;"><b>Показать еще</b></div></div>'); }; Conti = { to:function(){ $("#nextCont").html('<div style="padding:4px"><img src="https://mybloga.com/img/pubs/loading.gif" border="0" /></div>'); nextik = $("#selector").find(".swchItem:contains('»')").attr('onclick').toString(); num = nextik.match(/\d/); $.get('/НАЗВАНИЕ МОДУЛЯ/0-'+num, function(next){ $("#contik").append( $("#contik", next).html() ); $("#selector").html( $("#selector", next).html() ); $("#nextCont").html('<div onclick="Conti.to();" style="padding:3px;"><b>Показать еще</b></div>'); if ($("#selector", next).find(".swchItem:contains('»')").html() == null) { $("#nextCont").fadeOut(); }; }); } } </script>
Для модулей блог и новости решение немного отличается так как там и переключатель страниц системно в шаблоне встроен и тянется с оператора $BODY$, в результате в шаблоне нужно заменить $BODY$ на следующий код:
<script type="text/javascript"> if ($("#pagesBlock1").find(".swchItem:contains('»')").text() == '»') { $("#pagesBlock1").after('<br><div id="nextCont" class="input_submit alt"><div onclick="Conti.to();" style="padding:3px;"><b>Показать еще</b></div></div>'); }; Conti = { to:function(){ $("#nextCont").html('<div style="padding:4px"><img src="https://mybloga.com/img/pubs/loading.gif" border="0" /></div>'); nextik = $("#pagesBlock1").find(".swchItem:contains('»')").attr('onclick').toString(); num = nextik.match(/\d/); $.get('/НАЗВАНИЕ МОДУЛЯ/?page'+num, function(next){ $("#contik").append( $("#contik", next).html() ); $("#pagesBlock1").html( $("#pagesBlock1", next).html() ); $("#nextCont").html('<div onclick="Conti.to();" style="padding:3px;"><b>Показать еще</b></div>'); if ($("#pagesBlock1", next).find(".swchItem:contains('»')").html() == null) { $("#nextCont").fadeOut(); }; }); } } </script> <style>#pagesBlock1 {display:none;}</style>
Что важно помнить при использовании данного скрипта, выше в скрипте прописано текстом $.get('/НАЗВАНИЕ МОДУЛЯ/ там где "Название модуля" стоит прописать урл главной модуля в котором устанавливаете скрипт, то есть ( load, publ, dir, board. stuff, news или blog ). Это обязательно нужно прописать иначе скрипт не заработает.
И еще важно, скрипт работает лишь при использовании версии библиотеки jQuery 1.12.4, при использовании версии 3.6.0 он не работает, так что имейте это ввиду.
Лицензия: CC BY-SA 4.0
Автор: Юрий Герук
Благодарность автору!
| |
Здравствуй Гость, комментарии могут оставлять только зарегистрированные пользователи, зарегистрируйтесь и поделитесь мнением о материале выше Регистрация или Войти.