Verwolf

Одинаковый код для нескольких файлов

Рекомендуемые сообщения

Verwolf    1

Доброго времени суток, уважаемые форумчане!

 

Разрабатываю модуль на базе vqMod, столкнулся с таким вопросом: у меня одинаковый кусок кода должен быть встроен в несколько файлов движка. Как это лучше прописать?

 

1. Двумя отдельными блоками типа 

<file name="admin/controller/extension/module.php">
<operation>
<search position="before"><![CDATA[
...
          ]]>
</search>
<add trim="true"><![CDATA[...

2. Каким-то образом записать в 

<file name="admin/controller/extension/module.php">
<operation>
<search position="before"><![CDATA[
...

два файла и искомых участка (они, кстати, тоже совпадают)

 

3. Записать мой код в отдельный файл или существующую модель и потом подключать его в существующем коде с помощью VQMod и вызвать методы из него? Знаю, что правильнее было бы сделать запись в контроллер, но я запарилс его подключать... всё время выдаёт, что не найден языковой каталог... а мне он и не нужен вовсе... пустой каталог не очень хочется в дистрибутив кидать...

 

Очень интересно и важно услышать ваше мнение по этому вопросу. Заранее спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Verwolf    1

Сам я склоняюсь, наверное, к 3 варианту... Однажды, при модерации моего первого модуля мне заметили, что в xml-файле много повторяющихся фрагментов. Чем это чревато, я правда, даже и не знаю. Единственное, что приходит на ум - файл получается сильно тяжёлым и будет каким-то образом тормозить сайт. 

 

На это тоже было бы очень интересно услышать ответ.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
rb2    396

Разрабатываю модуль на базе vqMod, столкнулся с таким вопросом: у меня одинаковый кусок кода должен быть встроен в несколько файлов движка. Как это лучше прописать?

Документацию читать не пробовали?

<file path="path/to/" name="a.php,b.php,c.php">
...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Verwolf    1

Документацию читать не пробовали?

<file path="path/to/" name="a.php,b.php,c.php">
...

 

благодарю))) изучал документацию, но, видать, как-то невнимательно... а на будущее, что делать, если код одинаковый, а файлы и точки вставки разные? Данный пример помогает при вставке в разные файлы, если точка вставки она и та же (одинаковый фрагмент, после которого или перед которым можно вставить пользовательский код). А вот, если всё разное, кроме вставляемого фрагмента? Как тогда быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
rb2    396

Убрать "path" и перечислять все файлы в "name" через запятую. Это В ДОКУМЕНТАЦИИ НАПИСАНО.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Verwolf    1

Убрать "path" и перечислять все файлы в "name" через запятую. Это В ДОКУМЕНТАЦИИ НАПИСАНО.

 

А здесь можно как-то через запятую указать места для вставки? 

<search position="before"><![CDATA[
...
          ]]>

И если они будут отличаться, а в <file name> будут прописаны разные файлы, поймёт ли VQMod, какой фрагмент кода какому файлу соответствует?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От Extrim25
      Доброго времени сукок. После установки последней версии Vqmod (2.6.3) получаю следующую ошибку:
       
       
      Что может быть проблемой? Версия опенкарта 2.0.3.1
    • От mpn2005

      Скачать/Купить дополнение


      Обновление цены при выборе опции, без AJAX (OC1.5, OC2)
      При выборе опций товара обновляет цену товара (в том числе в бонусных баллах).
      Поддержка OpenCart v1.5.x, v2
      Поддержка ocStore: v1.5.x, v2
      Возможности:
      Не используется AJAX Поддержка OpenCart2, ocStore2 Поддерживаемые типы опций: radio, select, checkbox, images, Опции с вводом количества, Опции с вводом количества ОС2 Поддерживаемые модификаторы цены: +, -, =, *, +%, -% (Для =, *, +%, -% необходимо установить модуль options_price) Анимированная цена товара при изменении опций ( =, *, +% - при установленном модуле options_price - Оригинальный модль здесь )
      Для корректной работы используйте модуль модификаторов цены опции из этой темы.
      Демо ocStore 1.5.5.1.2: http://mpn-oc.org/autocalc_price_option_special.html
      Демо OpenCart 2.0.3.1: http://oc2031.mpn-oc.org/index.php?route=product/product&product_id=42
       
      Лицензия:
      Данное дополнение является бесплатным и распространяется по лицензии GNU GPL.
      Разрешается: модификация кода дополнения, использование с целью получения коммерческой выгоды, продажа или бесплатное размещение на других ресурсах.
       
      Для корректной работы модуля с темой Journal2, необходимо в настройках Journal2 отключить встроенный модуль обновления цены:
      Settings - Products Page - Product Details - Product Options - Auto Update Price
      (Спасибо пользователю shadowrun за предоставленную информацию)
       
      Версии модуля обновления цены:
      autocalc_price_option_v2.0.22.xml - модуль обновления цены при выборе опции OpenCart/ocStore v1.5.x (NEW) autocalc_price_option_OC2_v3.0.10.ocmod.xml - Версия для OpenCart/ocStore v2.x (Настройки модуля находятся на закладке Локализация в конфигурации магазина (NEW) autocalc_price_option_OC2_v3.0.10_unishop.ocmod.xml - Версия OC2 для шаблона UniShop. Поддержка обновления цены в быстром заказе. (NEW) autocalc_price_option_OC2_v3.0.10_moneymaker2.ocmod.xml - Версия OC2 для шаблона MoneyMaker2.   autocalc_v2.0.17_not_select_first_option.xml - модуль обновления цены при выборе опции ( БЕЗ автоматического выбора первой опции )   autocalc_v2.0.18_multicurrency.xml - Вывод двух валют в карточке товара и категориях. Вторая валюта выбирается в настройке магазина на закладке Локализация. При совпадении валют цена выводится один раз. autocalc_v2.0.18_opt_special_and_economy.xml - Акции на значения опций пропорционально товару. Вывод экономии. Там где необходимо вывести экономию в шаблоне вставьте: <div class="price-economy"></div>   autocalc_price_option_v2.0.9_weight.xml - Версия авторасчёта с выводом веса товара (Вес меняется в зависимости от выбранных опций) autocalc_price_option_v2.0.9_weight2.xml - При весе больше 1000 г вес показывается в кг. (Основной вес указывать в граммах)  
      Версии модуля доп. модификаторов к цене опции:
      (NEW) options_price_v1.0.13_OC2.ocmod.xml - модуль модификаторов цены опций (=,*,/) OCMOD для OpenCart2 и ocStore2. options_price_OC1.5_v1.0.0.xml- модуль модификаторов цены опций OpenCart v1.5.x (не мой, с небольшими правками для совместимости) Внимание! При использовании модуля MCL+ Полный пакет скидок устанавливать не требуется. Т.к. данное расширение уже интегрированно в модуль.
       
      Инструкция по установке OCMOD Opencart2, ocStore2:
      Файл autocalc_price_option_OC2_v3.0.10.ocmod.xml залить через админку в разделе Extension Installer (Кнопка Upload). Или положить файл в папку /system/ В разделе Modifications нажать кнопки Clear(Очистить) и Refresh(Обновить)  
      Инструкция по установке OpenCart 1.5.x, ocStore v1.5.x (если vqmod уже установлен начинаем с пункта 5):
      Скачиваем vqmod http://code.google.c.../downloads/list (например vqmod-2.4.1-opencart.zip) Загружаем "vqmod" в корневую директорию вашего сайта. Устанавливаем права 777 следующим папкам: /vqmod, /vqmod/vqcache. В адресной строке браузера вписываем: http://имя-вашего-сайта/vqmod/install/ Закидываем xml модуль в папку /vqmod/xml (например: autocalc_price_option_v2.0.9.xml). Заливать тоько одну из версий autocalc_price_option.  
      Список изменений (ocStore/OpenCart 2.x):
      v3.0.0 (06.04.2016) - Переписана и подчищена от старых хвостов. +Прохождение валидации html. v3.0.1 (07.04.2016) - Поддержка темы MoneyMaker2. Исправлен постоянный вывод бонусных баллов. v3.0.2 (07.04.2016) - Поддержка OpenCart v2.2. v3.0.4 (16.06.2016) - Добавлена поддержка модификатора '/'. (Обновлён модуль options_price_v1.0.10_OC2.ocmod.xml) v3.0.5 (22.06.2016) - Поддержка вывода двух валют в карточке товара и категориях. Вторая валюта выбирается в настройке магазина на закладке Локализация. v3.0.6 (24.06.2016) - Добавлена поддержка акции на опции (пропорционально товару). Добавлена настройка "Акция на опции (autocalc)". В настройке магазина на закладке Локализация. v3.0.7 (30.06.2016) - Добавлена настройка - "Не умножать на количество". Модуль по умолчанию умножает цену на количество. Все настройки отмечены на скриншоте. v3.0.8 (27.09.2016) - Добавлена настройка - "Выбор первой опции (autocalc)". При включении выбирает первую опцию (radio, select). В настройке магазина на закладке Локализация. v3.0.9 (25.11.2016) - Добавлена настройка - "Скидка на опции (autocalc)". При включении делаест скидку на опции пропорционально скидке (за количество) на товар. В настройке магазина на закладке Локализация. v3.0.10 (13.01.2017) - Доработка скидок и акций на опции для версии OC 2.3 Список изменений (ocStore/OpenCart 1.5.x):
      v2.0.10 (08.08.2013) - Корректировка вывода цены опции для модификатора * (не всегда корректно рассчитывался %). v2.0.11 (03.09.2013) - Анимированная цена товара при её изменении. v2.0.12 (20.09.2013) - Исправление для лучшей совместимости с нестандартными темами. v2.0.13 (01.11.2013) - BugFix: При работе скидки вместе с акцией неправильно обновлялась старая цена. v2.0.14 (06.01.2014) - BugFix: Поправлена логика работы с налогами. v2.0.15 (06.05.2014) - BugFix: Исправлена логика работы с модификатором '=' при множественном выборе опций. v2.0.16 (11.06.2014) - Устранение конфликта с кнопками ввода количества для темы AVA STORE. v2.0.17 (22.12.2014) - Улучшение совместимости с нестандартными темами. v2.0.18 (30.03.2015) - Исправлена работа модификатора '-'. Добавлена поддержка модификатора '+%'. v2.0.19 (22.07.2015) - BugFix: Цена по акции с модификатором '='. v2.0.20 (08.07.2016) - Добавлена поддержка модификатора '-%'. v2.0.21 (08.07.2016) - Небольшая доработка для корректного отображения модификаторов. v2.0.22 (27.09.2016) - Прохождение валидации html. Особенности работы:
      Не используется AJAX, поэтому при подсчёте скидок учитывается только введённое количество (товар, лежащий в корзине, в расчёте не участвует). Добавил mpn2005 Добавлено 04.12.2012 Категория Модули Системные требования Сайт разработчика Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 2.3
      2.2
      2.1
      2.0
      1.5.6.4
      1.5.6.3
      1.5.6.2
      1.5.6.1
      1.5.6
      1.5.4.1
      1.5.3.1 ocStore 2.3
      2.2
      2.1
      1.5.5.1.1
      1.5.5.1
      1.5.4.1.2
      1.5.4.1.1
      1.5.4.1
      1.5.3.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х
      OcShop 1.5.6.4.х  
    • От mpn2005
      При выборе опций товара обновляет цену товара (в том числе в бонусных баллах).
      Поддержка OpenCart v1.5.x, v2
      Поддержка ocStore: v1.5.x, v2
      Возможности:
      Не используется AJAX Поддержка OpenCart2, ocStore2 Поддерживаемые типы опций: radio, select, checkbox, images, Опции с вводом количества, Опции с вводом количества ОС2 Поддерживаемые модификаторы цены: +, -, =, *, +%, -% (Для =, *, +%, -% необходимо установить модуль options_price) Анимированная цена товара при изменении опций ( =, *, +% - при установленном модуле options_price - Оригинальный модль здесь )
      Для корректной работы используйте модуль модификаторов цены опции из этой темы.
      Демо ocStore 1.5.5.1.2: http://mpn-oc.org/autocalc_price_option_special.html
      Демо OpenCart 2.0.3.1: http://oc2031.mpn-oc.org/index.php?route=product/product&product_id=42
       
      Лицензия:
      Данное дополнение является бесплатным и распространяется по лицензии GNU GPL.
      Разрешается: модификация кода дополнения, использование с целью получения коммерческой выгоды, продажа или бесплатное размещение на других ресурсах.
       
      Для корректной работы модуля с темой Journal2, необходимо в настройках Journal2 отключить встроенный модуль обновления цены:
      Settings - Products Page - Product Details - Product Options - Auto Update Price
      (Спасибо пользователю shadowrun за предоставленную информацию)
       
      Версии модуля обновления цены:
      autocalc_price_option_v2.0.22.xml - модуль обновления цены при выборе опции OpenCart/ocStore v1.5.x (NEW) autocalc_price_option_OC2_v3.0.10.ocmod.xml - Версия для OpenCart/ocStore v2.x (Настройки модуля находятся на закладке Локализация в конфигурации магазина (NEW) autocalc_price_option_OC2_v3.0.10_unishop.ocmod.xml - Версия OC2 для шаблона UniShop. Поддержка обновления цены в быстром заказе. (NEW) autocalc_price_option_OC2_v3.0.10_moneymaker2.ocmod.xml - Версия OC2 для шаблона MoneyMaker2.   autocalc_v2.0.17_not_select_first_option.xml - модуль обновления цены при выборе опции ( БЕЗ автоматического выбора первой опции )   autocalc_v2.0.18_multicurrency.xml - Вывод двух валют в карточке товара и категориях. Вторая валюта выбирается в настройке магазина на закладке Локализация. При совпадении валют цена выводится один раз. autocalc_v2.0.18_opt_special_and_economy.xml - Акции на значения опций пропорционально товару. Вывод экономии. Там где необходимо вывести экономию в шаблоне вставьте: <div class="price-economy"></div>   autocalc_price_option_v2.0.9_weight.xml - Версия авторасчёта с выводом веса товара (Вес меняется в зависимости от выбранных опций) autocalc_price_option_v2.0.9_weight2.xml - При весе больше 1000 г вес показывается в кг. (Основной вес указывать в граммах)  
      Версии модуля доп. модификаторов к цене опции:
      (NEW) options_price_v1.0.13_OC2.ocmod.xml - модуль модификаторов цены опций (=,*,/) OCMOD для OpenCart2 и ocStore2. options_price_OC1.5_v1.0.0.xml- модуль модификаторов цены опций OpenCart v1.5.x (не мой, с небольшими правками для совместимости) Внимание! При использовании модуля MCL+ Полный пакет скидок устанавливать не требуется. Т.к. данное расширение уже интегрированно в модуль.
       
      Инструкция по установке OCMOD Opencart2, ocStore2:
      Файл autocalc_price_option_OC2_v3.0.10.ocmod.xml залить через админку в разделе Extension Installer (Кнопка Upload). Или положить файл в папку /system/ В разделе Modifications нажать кнопки Clear(Очистить) и Refresh(Обновить)  
      Инструкция по установке OpenCart 1.5.x, ocStore v1.5.x (если vqmod уже установлен начинаем с пункта 5):
      Скачиваем vqmod http://code.google.c.../downloads/list (например vqmod-2.4.1-opencart.zip) Загружаем "vqmod" в корневую директорию вашего сайта. Устанавливаем права 777 следующим папкам: /vqmod, /vqmod/vqcache. В адресной строке браузера вписываем: http://имя-вашего-сайта/vqmod/install/ Закидываем xml модуль в папку /vqmod/xml (например: autocalc_price_option_v2.0.9.xml). Заливать тоько одну из версий autocalc_price_option.  
      Список изменений (ocStore/OpenCart 2.x):
      v3.0.0 (06.04.2016) - Переписана и подчищена от старых хвостов. +Прохождение валидации html. v3.0.1 (07.04.2016) - Поддержка темы MoneyMaker2. Исправлен постоянный вывод бонусных баллов. v3.0.2 (07.04.2016) - Поддержка OpenCart v2.2. v3.0.4 (16.06.2016) - Добавлена поддержка модификатора '/'. (Обновлён модуль options_price_v1.0.10_OC2.ocmod.xml) v3.0.5 (22.06.2016) - Поддержка вывода двух валют в карточке товара и категориях. Вторая валюта выбирается в настройке магазина на закладке Локализация. v3.0.6 (24.06.2016) - Добавлена поддержка акции на опции (пропорционально товару). Добавлена настройка "Акция на опции (autocalc)". В настройке магазина на закладке Локализация. v3.0.7 (30.06.2016) - Добавлена настройка - "Не умножать на количество". Модуль по умолчанию умножает цену на количество. Все настройки отмечены на скриншоте. v3.0.8 (27.09.2016) - Добавлена настройка - "Выбор первой опции (autocalc)". При включении выбирает первую опцию (radio, select). В настройке магазина на закладке Локализация. v3.0.9 (25.11.2016) - Добавлена настройка - "Скидка на опции (autocalc)". При включении делаест скидку на опции пропорционально скидке (за количество) на товар. В настройке магазина на закладке Локализация. v3.0.10 (13.01.2017) - Доработка скидок и акций на опции для версии OC 2.3 Список изменений (ocStore/OpenCart 1.5.x):
      v2.0.10 (08.08.2013) - Корректировка вывода цены опции для модификатора * (не всегда корректно рассчитывался %). v2.0.11 (03.09.2013) - Анимированная цена товара при её изменении. v2.0.12 (20.09.2013) - Исправление для лучшей совместимости с нестандартными темами. v2.0.13 (01.11.2013) - BugFix: При работе скидки вместе с акцией неправильно обновлялась старая цена. v2.0.14 (06.01.2014) - BugFix: Поправлена логика работы с налогами. v2.0.15 (06.05.2014) - BugFix: Исправлена логика работы с модификатором '=' при множественном выборе опций. v2.0.16 (11.06.2014) - Устранение конфликта с кнопками ввода количества для темы AVA STORE. v2.0.17 (22.12.2014) - Улучшение совместимости с нестандартными темами. v2.0.18 (30.03.2015) - Исправлена работа модификатора '-'. Добавлена поддержка модификатора '+%'. v2.0.19 (22.07.2015) - BugFix: Цена по акции с модификатором '='. v2.0.20 (08.07.2016) - Добавлена поддержка модификатора '-%'. v2.0.21 (08.07.2016) - Небольшая доработка для корректного отображения модификаторов. v2.0.22 (27.09.2016) - Прохождение валидации html. Особенности работы:
      Не используется AJAX, поэтому при подсчёте скидок учитывается только введённое количество (товар, лежащий в корзине, в расчёте не участвует).
    • От freebooter
      Подскажите, какой модуль для автоматической очистки кэша ("VQMOD Clear all Opencart cache" или его аналог) пойдёт для ocstore 2.1.0.2.1.
      Есть бесплатная версия? Поделитесь плз ссылкой.
    • От DeNisDeNis
      Ребят, выручите пожалуйста...не очень много нужно ума чтобы попробовать настроить работу opencart и не влететь в ошибку. 
      Последнее что я делал было - в админ панели зашел в модификаторы, нашел файл fastOrderForm и нажал +активировать...

      теперь выдает если пробовать зайти через админку
      Fatal error: Cannot redeclare ModelCatalogProduct::getProductMainCategoryId() in /var/www/chtrakt5722/data/www/xn--80aa3aqhdjd.xn--j1amh/vqmod/vqcache/vq2-system_storage_modification_admin_model_catalog_product.php on line 1462 
       
      и это если попробовать просто зайти на сайт
      Fatal error: Cannot redeclare ControllerCommonHome::getCanonical() in /var/www/chtrakt5722/data/www/xn--80aa3aqhdjd.xn--j1amh/vqmod/vqcache/vq2-system_storage_modification_catalog_controller_common_home.php on line 91
       
       
      выручите, буду очень благодарен!
       
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу