Есть давний вопрос на форуме, его задавали довольно часто и некоторые элементы изменились, по этому напишу еще один пример.
По мотивам решения от Sliapy http://forum.jbzoo.c...uery-podgruzku/
Делаем подгрузку айтемов вместо пагинации
Первое что делаем это скачиваем знаменитый скрипт http://infiniteajaxscroll.com/
И так скаченный файл jquery-ias.min.js кладем в папку вашего шаблона, я это сделал в подпапку js
<script src="/templates/ВАШ_ШАБЛОН/js/jquery-ias.min.js" type="text/javascript"></script>
подключаем в index вашего шаблона скрипт. Думаю в этом пункте проблем возникнуть не должно.
Далее буду писать пример на основе шаблона bootsrap для JBZOO
Если вы используете другой шаблон, то просто измените классы на свои и измените стандартный pagination
Вызываем вот такой скрипт в вашем шаблоне
var ias = jQuery.ias({ container: '.items', //класс где выводятся все айтемы item: '.item-column', //класс одного айтема или строки с айтемами (у меня например row) pagination: '.pagination', //класс пагинации для того чтоб скрыть её next: '.next', // класс ссылки в пагинации для загрузки след страницы delay: 500 }); ias.extension(new IASSpinnerExtension({ src: '/images/squares.gif', // адрес лоадера для красоты })); ias.extension(new IASNoneLeftExtension({html: '<div class="ias-noneleft" style="text-align:center"><p><em>Это конец </em></p></div>'})); //текст когда айтемы закончатся по желанию
Так самое главное сделали, теперь меняем pagination. У меня шаблон bootsrap по этому идём по адресу
/media/zoo/applications/jbuniversal/templates/bootstrap/helpers/jbbootstrap.php
находим там код пагинации
if ($pagination->current() < $pagination->pages()) { $link = $pagination->link($url, $pagination->name() . '=' . ($pagination->current() + 1)); $html .= '<li><a href="' . JRoute::_($link) . '">»</a></li>'; $link = $pagination->link($url, $pagination->name() . '=' . ($pagination->pages())); $html .= '<li><a href="' . JRoute::_($link) . '">' . JText::_('JBZOO_BOOTSTRAP_PAGINATE_LAST') . '</a></li>'; }
Добавляем класс next для ссылки на след страницу
if ($pagination->current() < $pagination->pages()) { $link = $pagination->link($url, $pagination->name() . '=' . ($pagination->current() + 1)); $html .= '<li><a class="next" href="' . JRoute::_($link) . '">»</a></li>'; $link = $pagination->link($url, $pagination->name() . '=' . ($pagination->pages())); $html .= '<li><a href="' . JRoute::_($link) . '">' . JText::_('JBZOO_BOOTSTRAP_PAGINATE_LAST') . '</a></li>'; }
Теперь загружаем лоадер по тому пути что мы написали в скрипте. Я кинул просто в папку images.
Лоадер можно скачать тут http://loading.io/или тут http://preloaders.net/ru
Вот теперь всё. Наши айтемы подгружаются автоматом.
ПРИМИЧАНИЕ: Скрипт скрывает класс пагинации который мы указали .pagination он может совпадать со стандартным joomla и ваша пагинация в новостях будет скрыта имейте ввиду!
Edited by isay777, 25 March 2016 - 10:23.