Здравствуйте! Подскажите в чем проблема. Установил данный фильтр и не работает поле выбора категории (Показывать в категориях:(Автозаполнение)) - что не ввожу, ничего не происходит. Стоит не стандартный шаблон, я файлы в него залил в vqmod заменил звездочку на имя шаблона. p/s Скрыть в категориях:(Автозаполнение) - тут все работает. OcStore 2.1 Вот ошибки из консоли: Код: Failed to load resource: the server responded with a status of 500 (Internal Server Error) /admin/index.php?route=module/mega_filter/category_autocomplete&token=rJpEKzr3etjtXDB25DmH8AaAvFQGVMfy&filter_name=%22 Failed to load resource: the server responded with a status of 500 (Internal Server Error) /admin/index.php?route=module/mega_filter/category_autocomplete&token=rJpEKzr3etjtXDB25DmH8AaAvFQGVMfy&filter_name=%D1%8D Failed to load resource: the server responded with a status of 500 (Internal Server Error) /admin/index.php?route=module/mega_filter/category_autocomplete&token=rJpEKzr3etjtXDB25DmH8AaAvFQGVMfy&filter_name=%D1%8D%D0%BB Failed to load resource: the server responded with a status of 500 (Internal Server Error)
Это было лишнее. Звёздочка указывала, что нужно модифицировать все шаблоны. Если в вашем текущем шаблоне есть альтернативы всем файлам из дефолтного, то проблем из-за этой замены не будет, но, если смените шаблон и забудите поправить модификатор, всё отвалится. Сделайте вот это: https://wmasteru.org/threads/Настройки-оптимизации-фичи-статьи-для-opencart.2219/page-7#post-151032 И смотрите Журнал ошибок, там появится объяснение ошибки 500.
Полностью перезагрузил модуль, ничего не трогая и сделал как Вы посоветовали. (единственное закинул файл модуля в папку со своим шаблоном, так как модуль писал что нужно обновить файл по этому адресу) Вылезла ошибка: Код: 2016-08-01 19:04:27 - PHP Fatal Error: Call to undefined method ModelCatalogCategory::getCategories_MF() in /home/**/public_html/admin/controller/module/mega_filter.php on line 1955 Вот что в этой строчке: Код: $results = $this->model_catalog_category->getCategories_MF($data); foreach ($results as $result) { $json[] = array( 'category_id' => $result['category_id'], 'name' => strip_tags(html_entity_decode($result['name'], ENT_QUOTES, 'UTF-8')) ); } }
Ошибка указывает на то, что у вас модификатор не применился. В этой модели не должно быть метода getCategories_MF, а значит его должен был добавить модификатор из модуля, но он не сработал. Смотрите лог модификаторов.
Вот что я в логе нашел Код: VQmod - Processing 'Mega Filter PRO' VQmod - SEARCH NOT FOUND (ABORTING MOD): file name = '/home/***/public_html/catalog/view/theme/***/template/common/header.tpl' search = 'catalog/view/javascript/bootstrap/js/bootstrap.min.js'
Модуль не смог какой-то свой скрипт прописать в шапку (хотя это может быть и не скрипт, а что угодно, но скрипт в этом месте логичней всего). Это не связано с модификацией модели. Поищите в файле модификаторов модуля getCategories_MF и самостоятельно добавьте эту функцию в модель категорий.
Спасибо! Завтра буду пробовать) Фильтр с vqmod (патч установлен для OC2) Может у Вас есть какая-то стабильная версия для OC2? Так как пробовал с разных источников, но эта более менее стала норм, вот только с ошибкой в автозаполнении.
Сделал так как написано, все заработало с автозаполнением, но теперь при включенном модуле все категории выглядят так: Ошибок нигде не вижу. P.s. когда переносил код с модификатора, смутила такая строчка Код: if( version_compare( VERSION, '1.5.5', '>=' ) )
На это надо посмотреть вживую. Условие проверяет, что код внутри будет выполняться, только если версия ОК больше или равна 1.5.5. Вы уверены, что эта версия модуля адаптирована под двойку? Встречаются, конечно, модули, которые внутри содержат кучу подобных проверок и рботаю сразу и с 1.5 и с 2, но обычно всё же под двойку делают отдельную версию. Там и между версиями внутри второй ветки отличий достаточно, чтоб тоже проверки делать.
нашел модуль на форуме где многие устанавливали его на oc2, переустановил свой. В этом модуле проблем с автозаполнением не появилось, но проблема с категориями осталась. Ошибок в логе нет, но когда захожу Исследовать элемент в Хроме вижу в css только: Код: :hov .cls element.style { } user agent stylesheet body { display: block; margin: 8px; } Так, теперь по поводу установки, возможно что-то тут я не так делаю (стоит не дефолтный шаблон): 1. распаковал 2. залил на сервер все папки 3. обновил пользователей 4. обновил модификатор 5. установил модуль 6. модуль указал что файл в моем шаблоне устарел (его там изначально даже нету, все файлы идут в дефолтный шаблон) я его закинул в свой шаблон и эта ошибка пропадает 7. указываю категорию где будет отображаться модуль и получаю полную страницу иероглифов. Подскажите, возможно все намного проще и я что-то не так делаю (так как все время работал с дефолтным шаблоном)
я и до и после пробовал, ошибка все равно есть. Возможно нужно как-то файлы в новый шаблон закинуть и подключить их?
Не знаю, что могли бы в этом модуле нагавнокодить, но по нормальному, если в текущем шаблоне нет какого-то файла, он ищется в дефолтном и только потом возникает ошибка. И я не вижу, чтоб у вас была ошибка о не найденном шаблоне. Если сейчас единственная проблема - это абракадабра, то я ничего не смогу сказать, пока не увижу это вживую.
все заработало))) Но появилась другая ошибка. Не могу настроить модуль. Код: Unknown: Cannot redeclare ModelCatalogCategory::getCategories_MF() in /home/***/public_html/system/storage/modification/admin/model/catalog/category.php on line 42 а вот код этой строки Код: public function getCategories_MF($data) { if( version_compare( VERSION, '1.5.5', '>=' ) ) { $sql = "SELECT cp.category_id AS category_id, GROUP_CONCAT(cd1.name ORDER BY cp.level SEPARATOR ' > ') AS name, c.parent_id, c.sort_order FROM " . DB_PREFIX . "category_path cp LEFT JOIN " . DB_PREFIX . "category c ON (cp.path_id = c.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd1 ON (c.category_id = cd1.category_id) LEFT JOIN " . DB_PREFIX . "category_description cd2 ON (cp.category_id = cd2.category_id) WHERE cd1.language_id = '" . (int)$this->config->get('config_language_id') . "' AND cd2.language_id = '" . (int)$this->config->get('config_language_id') . "'"; if( ! empty( $data['filter_name'] ) ) { $sql .= " AND cd2.name LIKE '" . $this->db->escape($data['filter_name']) . "%'"; } $sql .= " GROUP BY cp.category_id ORDER BY name"; } else { $sql = "SELECT * FROM " . DB_PREFIX . "category c LEFT JOIN " . DB_PREFIX . "category_description cd ON (c.category_id = cd.category_id) WHERE cd.language_id = '" . (int)$this->config->get('config_language_id') . "'"; if( ! empty( $data['filter_name'] ) ) { $sql .= " AND LOWER(cd.name) LIKE '" . $this->db->escape( function_exists( 'mb_strtolower' ) ? mb_strtolower( $data['filter_name'], 'utf-8' ) : $data['filter_name'] ) . "%'"; } $sql .= " GROUP BY c.category_id ORDER BY name"; } if (isset($data['start']) || isset($data['limit'])) { if ($data['start'] < 0) { $data['start'] = 0; } if ($data['limit'] < 1) { $data['limit'] = 20; } $sql .= " LIMIT " . (int)$data['start'] . "," . (int)$data['limit']; } $query = $this->db->query($sql); return $query->rows; } --- Добавлено, 5 авг 2016 --- Разобрался с предыдущей ошибкой, но уже все лучше и лучше. Есть еще одна проблема. Слайдер вывел, но он весь неактивный, из ошибок только такие (через консоль) Код: TypeError: slider.slider is not a function MegaFilter.prototype._initPrice/self._refreshPrice() mega_filter.js:2255 MegaFilter.prototype._parseInfo() mega_filter.js:1244 MegaFilter.prototype._initCountInfo/<.success() mega_filter.js:1132 n.Callbacks/j() jquery-2.1.1.min.js:2 n.Callbacks/k.fireWith() jquery-2.1.1.min.js:2 x() jquery-2.1.1.min.js:4 .send/b/<() Код: TypeError: slider.slider is not a function MegaFilter.prototype._initPrice() mega_filter.js:2272 MegaFilter.prototype.boot() mega_filter.js:252 MegaFilter.prototype.init() mega_filter.js:227 <анонимная> akkumulyatornye-batarei:507 .each() jquery-2.1.1.min.js:2 n.prototype.each() jquery-2.1.1.min.js:2 <анонимная> akkumulyatornye-batarei:495 n.Callbacks/j() jquery-2.1.1.min.js:2 n.Callbacks/k.fireWith() jquery-2.1.1.min.js:2 .ready() jquery-2.1.1.min.js:2 I()
А вот это уже, вероятно, из-за той ошибки, которую vQmod в лог написал. Он не смог прописать скрипт слайдера в шапку.
Сейчас модуль без vqmod, но нашел эти строки в ocmod и перенес в файл, но ничего не поменялось. Модуль отображается, но в нем все неактивно. Вот такая ошибка есть в журнале: Код: 2016-08-05 22:08:34 - PHP Notice: Undefined variable: _routeInformation in /home/***/public_html/catalog/view/theme/unishop/template/module/mega_filter.tpl on line 458 ______________ 'ajaxPagination' : <?php echo empty( $settings['ajax_pagination'] ) ? 'false' : 'true'; ?>, А в консоли тоже самое: Код: mega_filter.js?v2.0.4.4.7:2255 Uncaught TypeError: slider.slider is not a function Вот сам файл OCMOD
Вот это: HTML: <file path="catalog/view/theme/*/template/common/header.tpl"> <operation> <search><![CDATA[catalog/view/javascript/bootstrap/js/bootstrap.min.js]]></search> <add position="before"><![CDATA[ <script src="catalog/view/javascript/mf/jquery-ui.min.js" type="text/javascript"></script> ]]></add> </operation> </file> ? Я не вижу у вас на странице категории подключённого файла jquery-ui.min.js. Почистите кеш модификаторов. И добавлять его нужно сразу после подключения самого jQuery.
У меня прописан данный код в файле: Код: <meta property="og:site_name" content="<?php echo $name; ?>" /> <script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script> <script src="catalog/view/javascript/mf/jquery-ui.min.js" type="text/javascript"></script> <link href="catalog/view/javascript/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" /> <script src="catalog/view/javascript/bootstrap/js/bootstrap.min.js" type="text/javascript"></script> <link href="catalog/view/javascript/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css" /> Но при открытии кода страницы он не появляется.