Jump to content

Recommended Posts

Всем привет. Столкнулся с проблемой в регулярках для vqmod. Я пытаюсь в некий файл для определенного if дописать свое условие, но регулярка никак не хочет искать в многострочном режиме.

if ($module['layout_id'] == $layout_id && $module['position'] == 'content_top' && $module['status']){
     $module_data[] = array(
	'code'       => $extension['code'],
	'setting'    => $module,
	'sort_order' => $module['sort_order']
     );				
}

мне надо дописать обычный else после этого участка. 

Пишу регулярку которая ищет участок 

if ($module['layout_id']

и дальше пропускает все символы до } 

#if\s*\(\s*\$module\['layout_id'\].*?\}#

Но она никогда не срабатывает, если в эту же строку дописать "// }", то все сработает. Получается что vqmod не хочет работать в многострочном режиме?

Ключи ставил для регулярки. не помогает. Пока что решил вопрос вставим код до if, но хочется найти решение по регулярке.

Есть у кого-нибудь решение данной задачи? 

Share this post


Link to post
Share on other sites

Replace для всей строки if не подходит ?

что-то типа search for 

if ($module['layout_id'] == $layout_id && $module['position'] == 'content_top' && $module['status'])

replace

if ($my_var == SOME_VAL && $module['layout_id'] == $layout_id && $module['position'] == 'content_top' && $module['status'])

Share this post


Link to post
Share on other sites

К сожалению нет. там тожет быть много чего навешано. Мне надо именно после этой проверки вставить свою.

Хотя может как вариант вставить просто перед скобкой ) -> || mycode )

Share this post


Link to post
Share on other sites

regex в vqmod это зло, даже сами разработчики крайне не рекомендуют это использовать.

Share this post


Link to post
Share on other sites

regex в vqmod это зло, даже сами разработчики крайне не рекомендуют это использовать.

Ну не знаю, когда надо вставить код, и есть вероятность того что кто-то его отформатировал, добавил пробел, или ещё что-то, то регепс очень даже хорош. 

Share this post


Link to post
Share on other sites

Ну не знаю, когда надо вставить код, и есть вероятность того что кто-то его отформатировал, добавил пробел, или ещё что-то, то регепс очень даже хорош.

а вы думаете, что кроме вашего модуля больше никаках модулей установлено не будет?

обычно на среднем сайте установлено несколько десятков модулей, многие используют vqmod

и чем больше в vqmod замен или регулярок тем больше вероятность конфликтов.

Share this post


Link to post
Share on other sites

а вы думаете, что кроме вашего модуля больше никаках модулей установлено не будет?

обычно на среднем сайте установлено несколько десятков модулей, многие используют vqmod

и чем больше в vqmod замен или регулярок тем больше вероятность конфликтов.

Я понимаю это прекрасно. Но причем здесь это к моему вопросу?

Share this post


Link to post
Share on other sites

Все поиски и замены в vqmod работают только в пределах одной строки т.к. vqmod обрабатывает редактируемые файлы построчно. Если Вам нужно сделать как в варианте ниже:

if ($my_var == SOME_VAL && $module['layout_id'] == $layout_id && $module['position'] == 'content_top' && $module['status'])

то используйте обычный поиск + обычный replace без регулярок и всего прочего.

 

Либо напишите сюда начальный вариант и какой должен быть конечный, а то не совсем понятно что и куда нужно вставить.  

Share this post


Link to post
Share on other sites

Спасибо. Уже решил. Вставил код перед закрывающейся скобкой ")"

Share this post


Link to post
Share on other sites

Все поиски и замены в vqmod работают только в пределах одной строки т.к. vqmod обрабатывает редактируемые файлы построчно. 

Вот это я и хотел узнать. Спасибо. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By zcell
      300.00 руб
      Скачать/Купить дополнение


      Списание остатков товара только при изменении статуса в админке
      Что делает модуль:
      Убирает списание товаров при оформлении заказа. Списывает остатки товара из заказа и остатки опций только при изменении на заданный в админке статус (стандартная настройка, см скриншот) Для чего это нужно:
      Если вы продаете товары, которые бывают в наличии в небольших количествах, то будет удобно списывать остатки товара по опреденному статусу, вместо автосписывания при оформления заказа клиентом.
      Например: оформлен заказ, но клиент отказался от него, либо что-то не подошло. В стандарте - товар уже будет списан, и если остаток был равен одному, другой клиент не сможет заказать товар. С модулем - товар спишется, только если вы поставили в заказе статус "Обработка" (зависит от настроек).
      То есть подтвердился заказ, тогда и бронируем товар за клиентом.
      Как установить:
      Залить файл в папку vqmod/xml Требования:
      opencart/ocstore 1.5.5 установленный vqmod Добавил zcell Добавлено 16.01.2016 Категория Прочее Системные требования Метод активации Без активации Ioncube Loader Нет OpenCart 1.5.5.1
      1.5.5 ocStore 1.5.5.1.2
      1.5.5.1.1
      1.5.5.1 OpenCart.Pro, ocShop Обращение к серверу разработчика  
    • By zcell
      750.00 руб
      Скачать/Купить дополнение


      Мультивалютный магазин с автоконвертацией по курсу ЦБ РФ и Yahoo (автообновление и фиксированные курсы валют)
      Цены по курсу ЦБ РФ и Yahoo | Разные валюты у товаров | Фиксированные курсы валют |
      100% совместимость | Пакетное назначение валюты |  Легкая установка
       
      Новая версия от 21 ноября!

      ВОЗМОЖНОСТИ:
      - Актуальные цены по курсу ЦентроБанка РФ и Yahoo
      - Пакетное редактирование валюты товаров по категории и/или бренду
      - Автоподсчет сконвертированной цены при редактировании цен товара;
      - Разные валюты для опций, скидок, акций и основной цены;
      - Возможность указать разные валюты у товаров;
      - Возможность использовать валюты с фиксированным курсом;
      - Клиенты видят суммы в валюте по умолчанию (рассчитанные по актуальному курсу);
      - Автоматическое обновление курса валют.
       
       
      ПРЕИМУЩЕСТВА:
      - Простая установка;
      - Интеграция в ядре системы, что позволяет получить интеграцию с подавляющим большинством модулей и шаблонов;
      - Не грузит систему, всего один файл.
        
       
      ПОДДЕРЖКА:
      В случае, если модуль не заработает в вашем магазине (1% вероятность), могу оказать бесплатную помощь по интеграции, но не более 30 минут (в 99% случаев этого времени достаточно).
      Сообщения без адреса сайта будут игнорируются. Для помощи по интеграции потребуется доступ по FTP и доступ в административную панель.
       
         
       
       
      УСТАНОВКА:
      0. Сделать БЕКАП базы данных!
      Для Opencart 1.5.x:
      1. Закачать через FTP файл модуля в папку vqmod/xml
      Для Opencart 2.1.x, 2.2.x, 2.3.x,3.x.x:
      1. Воспользоваться стандартным установщиком дополнений Opencart.
      Для всех версий:
      2. Открыть раздел Система - Локализация - Валюты
       
      КАК ПОЛЬЗОВАТЬСЯ:
      - После установки, зайдите в раздел (Система - Локализация - Валюты) - модуль автоматически проверит и создаст необходимые для функционирования поля
      - Зайдите в Система - Настройка -> Локализация и выберите подходящий метод обновления валют
      - Добавьте валюты (Система - Локализация - Валюты), если отсутствую необходимые валюты. Необходимо указать правильно код валюты - большими буквами, например RUB, USD, EUR
      - Выберите в каждом товаре, у которого валюта отлична от основной, нужную валюты (селектор находится справа от поля цены)
      - Если вам нужна фиксированная валюта (например 1 уе = 65 руб), то создаете новую валюту, пишите вымышленный код валюты, например FIX, FIC, FIE, чтобы система обновления не меняла курс автоматом, в поле значения курса пишите значение курса в рублях, далее выбираете эту валюту в нужных товарах.
        
      КАК РАБОТАЕТ МОДУЛЬ (для программистов и интеграторов):
      - Модуль создает дополнительные поля price_value и currency в таблице product, product_special, product_discount и product_option_value.
      - В поле price вышеуказанных таблиц хранится вычисленное значение цены по указанному значение price_value для валюты currency.
      - При обновлении курса валют во всех таблицах запускается перерасчет цены согласно новому курсу
      - При каждом сохранении товара поля для данного товара пересчитываются по текущему курсу
      - Фронт никак не модифицируется модулем, в связи с чем получаем 100% совместимость
       
      Административная панель: 
      - Цены товаров могут задавать в разных валютах (например указываете 10 USD в админке - на фронте будет цена по актуальному курсу доллара в рублях);
      - Валюты задаются как индивидуально для каждого товара, так и работает пакетное назначение, например в BatchEditor;
      - В заказах фиксируется сумма в рублях, по курсу соответствующему моменту оформления заказа (то есть цена товаров в заказе будет фиксирована).
       
      Фронт: 
      - Все цены автоматически показываются в основной валюте сайта;
      - Работает конвертация цены Опций, Скидки за количество;
      - Работает конвертация в мини-корзине, корзине и оформлении заказа;
      - Также корректно работает переключение между валютами в интернет магазине с пересчетом по актуальным курсам.
       
      Обновление курса валют:
      - Происходит при открытии главной страницы административной панели;
      - Источником курса валют является ЦБ РФ и Yahoo (если не удалось получить данные у ЦБ РФ, получит у Yahoo).
       
      Валюты:
      1. Стандартные валюты
      Любые валюты, которые поддерживаются ЦБ РФ или Yahoo
      2. Фиксированные курсы валют
      Например, если поставщик зафиксировал курс на 75 руб.
      Можно будет завести валюту и указать ей нужный курс, при обновлении курс будет сохраняться.
       

       

       


       
      Добавил zcell Добавлено 28.12.2015 Категория Цены, скидки, акции, подарки Системные требования Сайт разработчика Старая цена 900 Метод активации Автоматическая активация Ioncube Loader Нет OpenCart 3.0
      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.5.1
      1.5.5
      1.5.4.1
      1.5.3.1 ocStore 3.0
      2.3
      2.2
      2.1
      1.5.5.1.2
      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
      1.5.2.1
      1.5.1.3 OpenCart.Pro, ocShop Не проверялось Обращение к серверу разработчика Нет  
    • By balukoff
      300.00 руб
      Скачать/Купить дополнение


      Стрелки изменения порядка товаров в модуле "Рекомендуемые"
      Обработка добавляет стрелки к стандартному модулю "Рекомендуемые" в административной части opencart для изменения порядка товаров в списке.
      Например, нам нужно, чтобы товар Ipad был выше iMac, но тогда приходится удалять весь список и проходить всю операцию добавления. Однако модуль эту проблему решает.
      Необходим vqmod.
      - Не меняет исходные файлы
      - Использует "легкую" модель изменения DOM-структуры "на лету"
      - Сохранение модуля и вывод в шаблон - в стандартном режиме
      - Возможны доработки и обновления
      - Тестировалось на opencart/ocstore 1.5.x
      - Добавлена поддержка opencart 2.x
      Установка: просто поместите файл featured.xml в каталог vqmod\xml на Вашем сервере
      Для версии 2.x неоходимо установить модификатор через панель администрирования
      Добавил balukoff Добавлено 01.12.2015 Категория Прочее  
    • By savage4pro
      Скачать/Купить дополнение


      Замена символа рубля vQmod
      Мод заменяет знак валюты рубля на симпатичный почти уже стандартный символ (U+20BD), представленный в наборе "PT Sans" от google fonts.
      Подходит для любого шаблона OpenCart версий 1.5.x при отсутствии прямых модификаций ядра.
      Схема работы:
      добавляет в БД новую таблицу `oc_currency_modsymbols` с одной записью - для валюты с кодом RUB
      на этапе выборки данных о валютах оборачивает оригинальный символ в конструкцию для обработки подключаемыми при загрузке страницы стилями
      проверка таблицы (в случае отсутствия таблицы - создание, если пустая - заполнение) при каждом вызове конструктора класса Currency
      не ломает возможность менять оригинальный символ в админке, который будет показан при выводе шаблонов, в которых нет возможности подключать дополнительные стили (например, почтовые уведомления), пробелы до/после оригинального символа выносятся за пределы конструкции, т.е. сохраняются
      после установки можно вручную добавлять записи в таблицу `oc_currency_modsymbols` для форматирования символов валют по желанию (для включения в конечную строку стандартного значения, т.е. для автозамены, вместо него следует указать "_default_symbol_")
      мод можно безболезненно отключать/удалять, функциональность при этом вернется к стандартной
      Требуется vQmod версии 2.4.1.
      Установка:
      скопируйте содержимое папки "upload" в корень вашего сайта
      удалите файлы "/vqmod/vqcache/vq2-*"
      зайдите в панель администратора и очистите кэш vqmod и системный

      В случае некорректного отображения блока с форматированной ценой (например, вылезающие закрывающие теги вида: руб." />") необходимо в шаблоне, где эта цена выводится, оборачивать её вывод в strip_tags();
      Добавил savage4pro Добавлено 06.11.2015 Категория Прочее  
    • By LIAL
      Скачать/Купить дополнение


      Очистка кэша для OC 1.5.6.x
      Очистка кэша для Opencart 1.5.6.x
      Локализация: Русский, Английский
      Очистка кеша: Системный, Vqmod, mods.cache, кэш изображений.
      Директории проходит рекурсивно, удаляя затем пустые.
      НЕ удаляет файлы: index.*, .gitignore, .htaccess, .hgignore
      Для установки скопируйте корень папки upload в корень сайта, далее в панели администратора дайте права для доступа и изменения к модулю cache/cleaner.
      Очистка кэша находится в меню Администратора -> Система -> Очистка кэша
      Добавил LIAL Добавлено 11.09.2015 Категория Кэширование, сжатие, ускорение  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.