Кнопка «Показать все» K2 Joomla

В данной статье речь пойдет о модификации компонента 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 вашего шаблона в те же директории, какие в компоненте. Если возникнут сложности, пишите в комментариях.

Get inspired by castle-style home designs and bring grandeur to your dwelling at castle-style home design .

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*