В данной статье речь пойдет о модификации компонента K2 для cms Joomla. А точнее: Как добавить кнопку (ссылку) «Показать все» на страницы вывода материалов K2.
Если у вас мало материалов в компоненте K2, вы не паритесь по поводу скорости их загрузки на страницах сайта. Другое дело, когда количество материалов у вас приличное и все на одной странице, то пока загрузится вся страница, посетитель сбежит от вас на другой сайт. Чтобы этого не случилось нужно ускорить загрузку страниц сайта. Нужно просто разбить страницу с выводом материалов K2 на несколько страниц, например по 10 записей. Для этого нужно включить следующие опции в настройках шаблона материалов категории: «Нумерация страниц» и «Разбивка на страницы». С этим все понятно, это стандартные настройки компонента. А бывает так: вы настроили постраничную навигацию, а пользователь вашего сайта не хочет кликать по множеству страниц, у него есть время и он подождет пока все материалы загрузятся. Для этого нам нужна кнопка «Показать все», которая, к сожалению, на данный момент, в компоненте K2, отсутствует. Как ее сделать, читаем далее…
Содержание
Шаг 1. Редактируем файл itemlist.php
Файл находим тут: ваш_сайт\components\com_k2\models. Открываем его текстовым редактором. Находим следующее (примерно в районе 28 строки):
$limit = JRequest::getInt('limit');
И перед этим вставляем следующий скрипт:
if(JRequest::getVar('showall', '', 'get', 'string') == 'showall') { JRequest::setVar('limit',999); $app = JFactory::getApplication('site'); $componentParams = $app->getParams('com_k2'); $componentParams->set('num_leading_items', 999); }
Сохраняем, закрываем.
Шаг 2. Редактируем файл category.php
Файл находим тут: ваш_сайт\components\com_k2\templates\default. Открываем его текстовым редактором. Находим следующее (примерно в районе 253 строки) в конце файла:
<!-- Pagination --> <?php if(count($this->pagination->getPagesLinks())): ?> <div class="k2Pagination"> <?php if($this->params->get('catPagination')) echo $this->pagination->getPagesLinks(); ?> <div class="clr"></div> <?php if($this->params->get('catPaginationResults')) echo $this->pagination->getPagesCounter(); ?> </div> <?php endif; ?> <?php endif; ?>
И меняем на следующее:
<!-- Pagination --> <?php if(JRequest::getVar('showall', '', 'get', 'string') != 'showall'): ?> <?php if(count($this->pagination->getPagesLinks())): ?> <div style="display:none" class="k2Pagination"> <?php if($this->params->get('catPagination')) echo $this->pagination->getPagesLinks(); ?> <a class="catalog_items_lev2_showall" href="/<?=$this->category->link?>&showall=showall">Показать все</a> <div class="clr"></div> <?php endif; ?> </div> <?php endif; ?> <?php endif; ?>
Сохраняем, закрываем.
Шаг 3. Редактируем файл вашего шаблона
Обычно находится тут: ваш_сайт\templates\название_шаблона, и называется index.php.
Вставляем следующий скрипт между тегами <head></head>:
$(document).ready(function() { $("div:has('li[class = pagination-start]')").show(); });
Шаг 4. Копируем файлы в папку с шаблоном
Чтобы при обновлении компонента данные изменения сохранились, нужно скопировать измененные файлы в папку HTML вашего шаблона в те же директории, какие в компоненте. Если возникнут сложности, пишите в комментариях.