[Помогите] VQMod. Конфликты плагинов.

Тема в разделе "OpenCart", создана пользователем avtostopshik, 5 июл 2014.

?

Удавалось ли вам решать конфликт плагинов работающих с VQMod?

  1. да

    100,0%
  2. нет

    0 голосов
    0,0%
  3. Да, но с чьей-то помощью.

    0 голосов
    0,0%
  1. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    165
    Симпатии:
    13
    Негде не нашёл в интернете информации о конфликтах плагинов. То есть, есть упоминания "вскользь" о том, что дескать де, "...это конфликт плагинов...", и всё, на этом пояснения и заканчиваются. Здесь хочу предложить знающим людям рассказать, как решать эти конфликты, если таковые появились?
    У меня на данный момент конфликтуют два плагина- знак рубля и дополнительные вкладки для товара. Просто скажите пожалуйста, в какую сторону надо копать, чтобы конфликт решить, а плагины все стояли и работали? И влияет ли порядок загрузки плагинов на работу других?
     
  2. nix

    nix php, MySQL, UNIX, MikroTik ROSAPI

    Регистрация:
    16 янв 2013
    Сообщения:
    1.000
    Симпатии:
    889
    Во первых найти в каком файле оба мода делают изменения, во вторых, на каких строках (с небольшим запасом в пару строк) в етом файле делают изменения, нашол - теперь открываеш кеш етого файла и смотриш как он изменяет етот оригинальный файл, и либо вручную в найденый файл вносиш ети изменения которые моды делают одновременно или склеиваеш в один мод.
     
  3. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    Суть конфликта состоит в том, что нету приоритетов по модификации файла, если 2-ва модификатора (XML) файла делают изменения в одном файле движка, то обычно модифицирует тот, который раньше подключился к классу модификатора, выход один, как написал ув. nix, проанализировать 2-файла - модификатора (они же XML инструкции) и внести ручками модификации в нужные места, и соотв. закомментировать файл, другой же файл-модификатор пусть исполняет свою предназначенную роль.
     
  4. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    165
    Симпатии:
    13
    То есть можно утверждать, что если я из одного файла уберу функцию, которая есть в другом файле (из-за чего и происходит кофликт), то первый файл, а вместе с ним и модуль будет работать как и положено, не смотря на то, что одна функция там закоментирована?
    --- Добавлено, 5 июл 2014 ---
    Вот нашёл такое: система ругается на файл catalog_model_catalog_product.php. Кэшированный файл vq2-catalog_model_catalog_product.php полностью повторяет оригинал за исключением последней в нём функции, которой нет в оригинале:
    public function getProductTabs($product_id) {

    $product_tab_data = array();

    $product_tab_query = $this->db->query("SELECT t.tab_id, td.name, pt.text, t.position, t.show_empty FROM " . DB_PREFIX . "product_tab pt LEFT JOIN " . DB_PREFIX . "tab t ON (pt.tab_id = t.tab_id) LEFT JOIN " . DB_PREFIX . "tab_description td ON (t.tab_id = td.tab_id) WHERE pt.product_id = '" . (int)$product_id . "' AND td.language_id = '" . (int)$this->config->get('config_language_id') . "' AND pt.language_id = '" . (int)$this->config->get('config_language_id') . "' AND t.status = '1' AND ( t.show_empty = '1' OR NOT pt.text REGEXP '^[[:space:]]*$' ) ORDER BY t.position, t.sort_order, td.name");

    foreach ($product_tab_query->rows as $product_tab) {

    $product_tab_data[] = array(
    'tab_id' => $product_tab['tab_id'],
    'name' => $product_tab['name'],
    'text' => $product_tab['text'],
    'position' => $product_tab['position']
    );
    }

    return $product_tab_data;
    }
    Но она есть в файле мода, которые не хочет работать. А дальше я не понимаю- что нужно сделать, чтобы конфликта не было? Пробовал закоментировать функцию, вставить недостающую функцию в catalog_model_catalog_product.php, но всё это не привело желаемого результата. В случае с закоментировыванием, то сайт просто начинал работать (уже без ошибки), но мод не активировался.
     
    Последнее редактирование: 5 июл 2014
  5. Baco

    Baco Антихронофаг Команда форума

    Регистрация:
    9 окт 2012
    Сообщения:
    648
    Симпатии:
    327
    открываем файл: catalog/model/catalog/product.php, в нём, перед любой из public function добавляем:
    А в самом vqmod(XML)_файле_№2 код - вырезаем и сохраняем.
     
  6. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    165
    Симпатии:
    13
    Как оказалось, вставлять функцию нужно не где-нибудь, а именно там, где её рисует кэшированный файл от vqmod'а. Модуль заработал, вот только не так, как надо.
    Скажу, пожалуй, конкретно. Модуль должен был добавить новые вкладки к описанию товара, и они добавились, но не там, где вкладки "описание, отзывы", а внизу после описания. Выглядит не красиво. Если кто-то сможет порекомендовать как исправить, буду очень благодарен.
     
  7. crist

    crist

    Регистрация:
    2 окт 2013
    Сообщения:
    269
    Симпатии:
    503
    2 vqmod вызова 1 Имя файла может быть конфликт.

    просто скопируйте vqmod к другому

    может быть это может помочь
    :smile:
     
  8. avtostopshik

    avtostopshik

    Регистрация:
    16 май 2014
    Сообщения:
    165
    Симпатии:
    13
    Модуль дополнительные вкладки. Показывает ошибку в админке в самом верху экрана - Notice: Undefined index: product_id in ..\vqmod\vqcache\vq2-admin_controller_catalog_product.php on line 905
    Я так понимаю, не найден указанный индекс, и наверное это относится к базе данных. Но что мне там нужно изменить, или как создать такой индекс, чтобы больше это не было ошибкой?