Хочу поделится ответом/вариантом, почему может не работать пагинация в OpenCart 2? На одном сайте был установлен модификатор с названием Default timezone for PHP and Database и кодом
Ставил для синхронизации времени, потому как на сайте отличались реальные и отображаемые действия посетителей во времени. Поставил, проверил и забыл. Через год установил модуль для админки - Admin Quick Edit PRO, и в нём при фильтре товаров по категории пропала пагинация. Криво/косо я решил эту проблему. Но через пол года я поставил модуль для голосового поиска товаров, не в админке, а в шаблоне, и заметил что тоже пропала пагинация. В тоже время в категориях, производителях, других модулях, где есть пагинация, всё отображалось без проблем. В журнале опенкарта и на сервере ошибок не было. Не бывает же так, чтобы из-за одного модуля пропадала пагинация и в админке и на сайте? Бывает! Совершенно из-за стороннего модуля, который непосредственно не затрагивает кода пагинации - пагинация пропадает. Пару дней промучался с поиском проблемы, отключил модификатор, и всё наладилось. Надеюсь этим постом кому-то помочь.
PHP:
<?xml version='1.0' encoding='utf-8'?>
<modification>
<name>Default timezone for PHP and Database</name>
<code>timezone</code>
<version></version>
<author>Tri Le</author>
<link>http://tlecode.com</link>
<file path="system/library/db.php">
<operation>
<search regex="true"><![CDATA[~(.*this->)(.*)(->query.*)~]]></search>
<add position="replace"><![CDATA[
//tri mod start
$query = $this->$2->query("SELECT * FROM " . DB_PREFIX . "setting WHERE `code` = 'timezone'");
if ($query->num_rows) {
$status = $timezone = 0;
foreach ($query->rows as $row) {
if ($row['key'] == 'timezone_timezone') $timezone = $row['value'];
if ($row['key'] == 'timezone_status') $status = $row['value'];
}
if ($status && $timezone) {
date_default_timezone_set($timezone);
$now = new DateTime();
$mins = $now->getOffset() / 60;
$sgn = ($mins < 0 ? -1 : 1);
$mins = abs($mins);
$hrs = floor($mins / 60);
$mins -= $hrs * 60;
$offset = sprintf('%+d:%02d', $hrs * $sgn, $mins);
$this->$2->query("SET time_zone = '" . $offset . "'");
}
}
//tri mod end
$1$2$3
]]></add>
</operation>
</file>
</modification>
Ставил для синхронизации времени, потому как на сайте отличались реальные и отображаемые действия посетителей во времени. Поставил, проверил и забыл. Через год установил модуль для админки - Admin Quick Edit PRO, и в нём при фильтре товаров по категории пропала пагинация. Криво/косо я решил эту проблему. Но через пол года я поставил модуль для голосового поиска товаров, не в админке, а в шаблоне, и заметил что тоже пропала пагинация. В тоже время в категориях, производителях, других модулях, где есть пагинация, всё отображалось без проблем. В журнале опенкарта и на сервере ошибок не было. Не бывает же так, чтобы из-за одного модуля пропадала пагинация и в админке и на сайте? Бывает! Совершенно из-за стороннего модуля, который непосредственно не затрагивает кода пагинации - пагинация пропадает. Пару дней промучался с поиском проблемы, отключил модификатор, и всё наладилось. Надеюсь этим постом кому-то помочь.