[Помогите] MegaFilter Pro

Тема в разделе "OpenCart", создана пользователем Dimakusch, 1 авг 2016.

  1. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    Здравствуйте! Подскажите в чем проблема. Установил данный фильтр и не работает поле выбора категории (Показывать в категориях:(Автозаполнение)) - что не ввожу, ничего не происходит.
    Стоит не стандартный шаблон, я файлы в него залил в 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)
     
  2. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Это было лишнее. Звёздочка указывала, что нужно модифицировать все шаблоны. Если в вашем текущем шаблоне есть альтернативы всем файлам из дефолтного, то проблем из-за этой замены не будет, но, если смените шаблон и забудите поправить модификатор, всё отвалится.

    Сделайте вот это:
    https://wmasteru.org/threads/Настройки-оптимизации-фичи-статьи-для-opencart.2219/page-7#post-151032

    И смотрите Журнал ошибок, там появится объяснение ошибки 500.
     
  3. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    Полностью перезагрузил модуль, ничего не трогая и сделал как Вы посоветовали. (единственное закинул файл модуля в папку со своим шаблоном, так как модуль писал что нужно обновить файл по этому адресу)
    Вылезла ошибка:
    Код:
    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'))
                    );
                }      
            }
    
     
  4. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Ошибка указывает на то, что у вас модификатор не применился.
    В этой модели не должно быть метода getCategories_MF, а значит его должен был добавить модификатор из модуля, но он не сработал.
    Смотрите лог модификаторов.
     
  5. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    Вот что я в логе нашел

    Код:
    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'
     
  6. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Модуль не смог какой-то свой скрипт прописать в шапку (хотя это может быть и не скрипт, а что угодно, но скрипт в этом месте логичней всего).
    Это не связано с модификацией модели.

    Поищите в файле модификаторов модуля getCategories_MF и самостоятельно добавьте эту функцию в модель категорий.
     
  7. ruscadet

    ruscadet

    Регистрация:
    16 дек 2012
    Сообщения:
    112
    Симпатии:
    18
    насколько я помню, версия этого фильтра для ОС2 без vqmod
     
  8. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    Спасибо! Завтра буду пробовать)
    Фильтр с vqmod (патч установлен для OC2)

    Может у Вас есть какая-то стабильная версия для OC2? Так как пробовал с разных источников, но эта более менее стала норм, вот только с ошибкой в автозаполнении.
     
  9. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    Сделал так как написано, все заработало с автозаполнением, но теперь при включенном модуле все категории выглядят так:


    Ошибок нигде не вижу.

    P.s. когда переносил код с модификатора, смутила такая строчка
    Код:
    if( version_compare( VERSION, '1.5.5', '>=' ) ) 
     
  10. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    На это надо посмотреть вживую.

    Условие проверяет, что код внутри будет выполняться, только если версия ОК больше или равна 1.5.5.

    Вы уверены, что эта версия модуля адаптирована под двойку? Встречаются, конечно, модули, которые внутри содержат кучу подобных проверок и рботаю сразу и с 1.5 и с 2, но обычно всё же под двойку делают отдельную версию. Там и между версиями внутри второй ветки отличий достаточно, чтоб тоже проверки делать.
     
  11. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    нашел модуль на форуме где многие устанавливали его на oc2, переустановил свой. В этом модуле проблем с автозаполнением не появилось, но проблема с категориями осталась.
    Ошибок в логе нет, но когда захожу Исследовать элемент в Хроме вижу в css только:
    Код:
    :hov
    .cls
    element.style {
    }
    user agent stylesheet
    body {
        display: block;
        margin: 8px;
    }
    Так, теперь по поводу установки, возможно что-то тут я не так делаю (стоит не дефолтный шаблон):
    1. распаковал
    2. залил на сервер все папки
    3. обновил пользователей
    4. обновил модификатор
    5. установил модуль
    6. модуль указал что файл в моем шаблоне устарел (его там изначально даже нету, все файлы идут в дефолтный шаблон) я его закинул в свой шаблон и эта ошибка пропадает
    7. указываю категорию где будет отображаться модуль и получаю полную страницу иероглифов.

    Подскажите, возможно все намного проще и я что-то не так делаю (так как все время работал с дефолтным шаблоном)
     
  12. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Модификаторы надо обновлять после установки, а не перед.
     
  13. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    я и до и после пробовал, ошибка все равно есть. Возможно нужно как-то файлы в новый шаблон закинуть и подключить их?
     
  14. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Не знаю, что могли бы в этом модуле нагавнокодить, но по нормальному, если в текущем шаблоне нет какого-то файла, он ищется в дефолтном и только потом возникает ошибка. И я не вижу, чтоб у вас была ошибка о не найденном шаблоне.

    Если сейчас единственная проблема - это абракадабра, то я ничего не смогу сказать, пока не увижу это вживую.
     
  15. Stealth421

    Stealth421

    Регистрация:
    10 дек 2013
    Сообщения:
    125
    Симпатии:
    36
    отключите сжатие и абракадабра должна пропасть и можно будет найти ошибку
     
    Dimakusch нравится это.
  16. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    все заработало)))
    Но появилась другая ошибка. Не могу настроить модуль.
    Код:
    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()
     
  17. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    А вот это уже, вероятно, из-за той ошибки, которую vQmod в лог написал.
    Он не смог прописать скрипт слайдера в шапку.
     
  18. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    Сейчас модуль без 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
     
    Последнее редактирование: 6 авг 2016
  19. Dotrox

    Dotrox Команда форума

    Регистрация:
    27 ноя 2012
    Сообщения:
    3.198
    Симпатии:
    1.306
    Вот это:
    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.
     
    Dimakusch нравится это.
  20. Dimakusch

    Dimakusch

    Регистрация:
    4 дек 2015
    Сообщения:
    129
    Симпатии:
    2
    У меня прописан данный код в файле:
    Код:
    <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" />
    Но при открытии кода страницы он не появляется.