Ссылка помогла адаптировать K2 для решения задачи. Спасибо Aventurier.
Что сделал?
1. modules/mod_k2_content/helper.php - основные изменения в методе getItems. В двух словах:
1.1. Заменил
$db->setQuery($query, 0, $limit)
на
$db->setQuery($query, $limitstart, $limit)
Для этого пришлось составление основного запроса писать в дополнительную переменную $queryAdd.
1.2. Составил запрос на получение кол-ва статей K2 для правильного использования JPagination
$queryCount = "SELECT COUNT(i.id) as rec_count " . $queryAdd;
$db->setQuery($queryCount, 0, 1);
$row = $db->loadRow();
jimport('joomla.html.pagination');
$this->_pagination = new JPagination(intval($row[0]), $limitstart, $limit);
1.3. Добавил свойство
private $_pagination = null;
и метод
public function getPagination(){return $this->_pagination;}
как было написано в статье.
2. modules/mod_k2_content/mod_k2_content.php - создание объекта навигации:
$pageNav = modK2ContentHelper::getPagination();
3. modules/mod_k2_content/tmpl/Default/default.php - добавлен вывод навигации:
<?php if($pageNav->total > 1): ?>
<div style="text-align:center;">
<?php echo $pageNav->getPagesLinks(); ?>
</div>
<?php endif; ?>
Архив с исходниками изменений (используется K2 ver 2.3):
http://www.protema.ru/upload/other/mod_k2_content.zipРабочий вариант постраничной навигации - на главной странице.