ajs Опубликовано: 30 июля 2015 Поделиться Опубликовано: 30 июля 2015 Помогите советом. Пытаюсь заменить несколько строк с помощью OCMOD в OC 2 . если одну менять , то все работает, а если в search несколько строк добавить, то не работает. Пример который не работает: <operation> <search><![CDATA[ if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/account/address_form.tpl')) { $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/account/address_form.tpl', $data)); } else { $this->response->setOutput($this->load->view('default/template/account/address_form.tpl', $data)); } ]]></search> <add position="replace"><![CDATA[ if (file_exists(DIR_TEMPLATE . $this->config->get('config_template') . '/template/account/custom_address_form.tpl')) { $this->response->setOutput($this->load->view($this->config->get('config_template') . '/template/account/custom_address_form.tpl', $data)); } else { $this->response->setOutput($this->load->view('default/template/account/custom_address_form.tpl', $data)); } ]]></add> </operation> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Tom Опубликовано: 30 июля 2015 Поделиться Опубликовано: 30 июля 2015 Ищем первую строку,меняем её и определённое количество после неё <add position="replace" offset=" количество строк"> 2 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... AlexDW Опубликовано: 30 июля 2015 Поделиться Опубликовано: 30 июля 2015 VQMOD / OCMOD ищут только по одной строке для поиска по нескольким - делать отдельно для каждой Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... puno Опубликовано: 30 июля 2015 Поделиться Опубликовано: 30 июля 2015 Документация https://github.com/opencart/opencart/wiki/Modification-System Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 июля 2015 Поделиться Опубликовано: 30 июля 2015 (изменено) Multiline Fix от rb2 попробовать стоит Изменено 30 июля 2015 пользователем Otvet Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 8 месяцев спустя... vladyka Опубликовано: 17 апреля 2016 Поделиться Опубликовано: 17 апреля 2016 Возможно, для кого-то будет полезно. Многострочный поиск в OCMOD Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 год спустя... krluch Опубликовано: 11 октября 2017 Поделиться Опубликовано: 11 октября 2017 Иногда при написании модификаторов для Опенкарт возникает необходимость поиска многострочных маркеров для более высокой точности. Фикс добавляет поддержку атрибута qoute, с которым используется функция preg_quote(). Изменения производятся в файле admin/controller/extension/modification.php. Нужно найти следующий фрагмент кода: $search = trim($operation->getElementsByTagName('search')->item(0)->textContent); $limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit'); $replace = trim($operation->getElementsByTagName('add')->item(0)->textContent); И заменить его на этот (добавилась строка): $search = $operation->getElementsByTagName('search')->item(0)->textContent; $limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit'); $quote = $operation->getElementsByTagName('search')->item(0)->getAttribute('quote'); $replace = $operation->getElementsByTagName('add')->item(0)->textContent; Далее после блока: // Limit if (!$limit) { $limit = -1; } Добавить этот: // Quote if ($quote == 'true') { $search = preg_quote($search); } Вот и все! Не забудьте сохранить файл и очистить кеш. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 11 месяцев спустя... stydent Опубликовано: 17 сентября 2018 Поделиться Опубликовано: 17 сентября 2018 (изменено) изменил admin/controller/extension/modification.php как написали. но мой модификатор не работает с двумя строчками. с одной все ок. чего может не хватать? <?xml version="1.0" encoding="utf-8"?> <modification> <name>my_hack</name> <code>2</code> <version>228</version> <author>Андрей</author> <link>5</link> <file path="catalog/view/theme/default/template/common/header.tpl"> <operation> <search reqex="true" quote="true" limit="2"><![CDATA[ <script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script> <link href="catalog/view/javascript/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" /> ]]></search> <add position="replace"><![CDATA[ 4545 ]]></add> </operation> </file> </modification> Изменено 17 сентября 2018 пользователем stydent Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 2 года спустя... Megafara Опубликовано: 4 января 2021 Поделиться Опубликовано: 4 января 2021 (изменено) Мне помогло убрать блок НАЛИЧИЕ вот так: // - следующий мод убирате блок НАЛИЧИЕ <file path="catalog/view/theme/newstore/template/product/product.tpl"> <operation> <search regex="true"><![CDATA[%<hr>[^<]*?<ul class="list-unstyled availability">[^.]*?</ul>%]]></search> <add position="replace"><![CDATA[]]></add> </operation> </file> Это касается как раз замены нескольких строк, потому что блок начинался с <HR>, а таких строк в файле было много! Изменено 4 января 2021 пользователем Megafara Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Подскажите как можно в 21 веке сделать нечто подобное: <operation> <search><![CDATA[<div id="recaptcha1">]]></search> <add position="replace"><![CDATA[<div class="g-recaptcha">]]></add> <search><![CDATA[var onloadCallback = function() {]]></search> <add position="replace" offset="1"><![CDATA[ var onloadCallback = function() { var divcaptcha = document.getElementsByClassName('g-recaptcha'); for (var i = 0; i < divcaptcha.length; i++) { grecaptcha.render(divcaptcha[i], { 'sitekey': '{{ site_key }}' }); } }; ]]></add> </operation> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Да именно это Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации SEO PRO - работа с изображениями, перегенерация и замена на сторонний СЕО-модуль Автор: sevvvvvvko, 16 января 1 ответ 167 просмотров chukcha 16 января Карта ******ы в админке ocmod Автор: pashast, 18 февраля 2016 ocmod ukraine (и ещё 2) Теги: ocmod ukraine карта админка 0 комментариев 13 401 просмотр pashast 18 февраля 2016 Несколько слешей после url: это норма? Автор: Zetx, 1 февраля 2019 19 ответов 1 811 просмотров WarStyle 18 ноября 2022 в файле index.php на первой строке автоматически появляется код, из-за чего выходит ошибка 500 Автор: AnGera, 5 января 2 ответа 216 просмотров Etegro 5 января Один и тот же товар должен иметь несколько ссылок. Как сделать? Автор: hasp, 16 ноября 2022 0 ответов 187 просмотров hasp 16 ноября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Шаблоны, дизайн и оформление магазина VQMOD OCMOD замена нескольких строк Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax × Уже зарегистрированы? Войти Регистрация Раздел покупок Назад Приобретенные дополнения Ваши счета Список желаний Альтернативные контакты Форум Новости ocStore Назад Официальный сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Скачать ocStore Документация История версий ocStore Блоги Модули Шаблоны Назад Бесплатные шаблоны Платные шаблоны Услуги FAQ OpenCart.Pro Назад Демо Купить Сравнение Хостинг для OpenCart × Создать... Важная информация На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности. Я принимаю
AlexDW Опубликовано: 30 июля 2015 Поделиться Опубликовано: 30 июля 2015 VQMOD / OCMOD ищут только по одной строке для поиска по нескольким - делать отдельно для каждой Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... puno Опубликовано: 30 июля 2015 Поделиться Опубликовано: 30 июля 2015 Документация https://github.com/opencart/opencart/wiki/Modification-System Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Otvet Опубликовано: 30 июля 2015 Поделиться Опубликовано: 30 июля 2015 (изменено) Multiline Fix от rb2 попробовать стоит Изменено 30 июля 2015 пользователем Otvet Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 8 месяцев спустя... vladyka Опубликовано: 17 апреля 2016 Поделиться Опубликовано: 17 апреля 2016 Возможно, для кого-то будет полезно. Многострочный поиск в OCMOD Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 год спустя... krluch Опубликовано: 11 октября 2017 Поделиться Опубликовано: 11 октября 2017 Иногда при написании модификаторов для Опенкарт возникает необходимость поиска многострочных маркеров для более высокой точности. Фикс добавляет поддержку атрибута qoute, с которым используется функция preg_quote(). Изменения производятся в файле admin/controller/extension/modification.php. Нужно найти следующий фрагмент кода: $search = trim($operation->getElementsByTagName('search')->item(0)->textContent); $limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit'); $replace = trim($operation->getElementsByTagName('add')->item(0)->textContent); И заменить его на этот (добавилась строка): $search = $operation->getElementsByTagName('search')->item(0)->textContent; $limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit'); $quote = $operation->getElementsByTagName('search')->item(0)->getAttribute('quote'); $replace = $operation->getElementsByTagName('add')->item(0)->textContent; Далее после блока: // Limit if (!$limit) { $limit = -1; } Добавить этот: // Quote if ($quote == 'true') { $search = preg_quote($search); } Вот и все! Не забудьте сохранить файл и очистить кеш. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 11 месяцев спустя... stydent Опубликовано: 17 сентября 2018 Поделиться Опубликовано: 17 сентября 2018 (изменено) изменил admin/controller/extension/modification.php как написали. но мой модификатор не работает с двумя строчками. с одной все ок. чего может не хватать? <?xml version="1.0" encoding="utf-8"?> <modification> <name>my_hack</name> <code>2</code> <version>228</version> <author>Андрей</author> <link>5</link> <file path="catalog/view/theme/default/template/common/header.tpl"> <operation> <search reqex="true" quote="true" limit="2"><![CDATA[ <script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script> <link href="catalog/view/javascript/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" /> ]]></search> <add position="replace"><![CDATA[ 4545 ]]></add> </operation> </file> </modification> Изменено 17 сентября 2018 пользователем stydent Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 2 года спустя... Megafara Опубликовано: 4 января 2021 Поделиться Опубликовано: 4 января 2021 (изменено) Мне помогло убрать блок НАЛИЧИЕ вот так: // - следующий мод убирате блок НАЛИЧИЕ <file path="catalog/view/theme/newstore/template/product/product.tpl"> <operation> <search regex="true"><![CDATA[%<hr>[^<]*?<ul class="list-unstyled availability">[^.]*?</ul>%]]></search> <add position="replace"><![CDATA[]]></add> </operation> </file> Это касается как раз замены нескольких строк, потому что блок начинался с <HR>, а таких строк в файле было много! Изменено 4 января 2021 пользователем Megafara Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Подскажите как можно в 21 веке сделать нечто подобное: <operation> <search><![CDATA[<div id="recaptcha1">]]></search> <add position="replace"><![CDATA[<div class="g-recaptcha">]]></add> <search><![CDATA[var onloadCallback = function() {]]></search> <add position="replace" offset="1"><![CDATA[ var onloadCallback = function() { var divcaptcha = document.getElementsByClassName('g-recaptcha'); for (var i = 0; i < divcaptcha.length; i++) { grecaptcha.render(divcaptcha[i], { 'sitekey': '{{ site_key }}' }); } }; ]]></add> </operation> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Да именно это Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации SEO PRO - работа с изображениями, перегенерация и замена на сторонний СЕО-модуль Автор: sevvvvvvko, 16 января 1 ответ 167 просмотров chukcha 16 января Карта ******ы в админке ocmod Автор: pashast, 18 февраля 2016 ocmod ukraine (и ещё 2) Теги: ocmod ukraine карта админка 0 комментариев 13 401 просмотр pashast 18 февраля 2016 Несколько слешей после url: это норма? Автор: Zetx, 1 февраля 2019 19 ответов 1 811 просмотров WarStyle 18 ноября 2022 в файле index.php на первой строке автоматически появляется код, из-за чего выходит ошибка 500 Автор: AnGera, 5 января 2 ответа 216 просмотров Etegro 5 января Один и тот же товар должен иметь несколько ссылок. Как сделать? Автор: hasp, 16 ноября 2022 0 ответов 187 просмотров hasp 16 ноября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Шаблоны, дизайн и оформление магазина VQMOD OCMOD замена нескольких строк Покупателям Оплата дополнений физическими лицами Оплата дополнений юридическими лицами Политика возвратов Разработчикам Регламент размещения дополнений Регламент продаж и поддержки дополнений Виртуальный аккаунт автора Политика продвижения объявлений API каталога дополнений Урегулирование споров по авторским правам Полезная информация Публичная оферта Политика возвратов Политика конфиденциальности Платежная политика Политика Передачи Персональных Данных Политика прозрачности Последние дополнения TgMarket - Модуль интернет магазина в телеграмме. Автор: Rassol2 ShowCase – адаптивный универсальный шаблон Автор: octemplates Telnotification Автор: Yevhenii_7777 Слайдер Производителей Автор: klimmm Информация (подсказка) Опций и Атрибутов Автор: Parallax
puno Опубликовано: 30 июля 2015 Поделиться Опубликовано: 30 июля 2015 Документация https://github.com/opencart/opencart/wiki/Modification-System Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Otvet Опубликовано: 30 июля 2015 Поделиться Опубликовано: 30 июля 2015 (изменено) Multiline Fix от rb2 попробовать стоит Изменено 30 июля 2015 пользователем Otvet Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 8 месяцев спустя... vladyka Опубликовано: 17 апреля 2016 Поделиться Опубликовано: 17 апреля 2016 Возможно, для кого-то будет полезно. Многострочный поиск в OCMOD Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 год спустя... krluch Опубликовано: 11 октября 2017 Поделиться Опубликовано: 11 октября 2017 Иногда при написании модификаторов для Опенкарт возникает необходимость поиска многострочных маркеров для более высокой точности. Фикс добавляет поддержку атрибута qoute, с которым используется функция preg_quote(). Изменения производятся в файле admin/controller/extension/modification.php. Нужно найти следующий фрагмент кода: $search = trim($operation->getElementsByTagName('search')->item(0)->textContent); $limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit'); $replace = trim($operation->getElementsByTagName('add')->item(0)->textContent); И заменить его на этот (добавилась строка): $search = $operation->getElementsByTagName('search')->item(0)->textContent; $limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit'); $quote = $operation->getElementsByTagName('search')->item(0)->getAttribute('quote'); $replace = $operation->getElementsByTagName('add')->item(0)->textContent; Далее после блока: // Limit if (!$limit) { $limit = -1; } Добавить этот: // Quote if ($quote == 'true') { $search = preg_quote($search); } Вот и все! Не забудьте сохранить файл и очистить кеш. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 11 месяцев спустя... stydent Опубликовано: 17 сентября 2018 Поделиться Опубликовано: 17 сентября 2018 (изменено) изменил admin/controller/extension/modification.php как написали. но мой модификатор не работает с двумя строчками. с одной все ок. чего может не хватать? <?xml version="1.0" encoding="utf-8"?> <modification> <name>my_hack</name> <code>2</code> <version>228</version> <author>Андрей</author> <link>5</link> <file path="catalog/view/theme/default/template/common/header.tpl"> <operation> <search reqex="true" quote="true" limit="2"><![CDATA[ <script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script> <link href="catalog/view/javascript/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" /> ]]></search> <add position="replace"><![CDATA[ 4545 ]]></add> </operation> </file> </modification> Изменено 17 сентября 2018 пользователем stydent Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 2 года спустя... Megafara Опубликовано: 4 января 2021 Поделиться Опубликовано: 4 января 2021 (изменено) Мне помогло убрать блок НАЛИЧИЕ вот так: // - следующий мод убирате блок НАЛИЧИЕ <file path="catalog/view/theme/newstore/template/product/product.tpl"> <operation> <search regex="true"><![CDATA[%<hr>[^<]*?<ul class="list-unstyled availability">[^.]*?</ul>%]]></search> <add position="replace"><![CDATA[]]></add> </operation> </file> Это касается как раз замены нескольких строк, потому что блок начинался с <HR>, а таких строк в файле было много! Изменено 4 января 2021 пользователем Megafara Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Подскажите как можно в 21 веке сделать нечто подобное: <operation> <search><![CDATA[<div id="recaptcha1">]]></search> <add position="replace"><![CDATA[<div class="g-recaptcha">]]></add> <search><![CDATA[var onloadCallback = function() {]]></search> <add position="replace" offset="1"><![CDATA[ var onloadCallback = function() { var divcaptcha = document.getElementsByClassName('g-recaptcha'); for (var i = 0; i < divcaptcha.length; i++) { grecaptcha.render(divcaptcha[i], { 'sitekey': '{{ site_key }}' }); } }; ]]></add> </operation> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Да именно это Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации SEO PRO - работа с изображениями, перегенерация и замена на сторонний СЕО-модуль Автор: sevvvvvvko, 16 января 1 ответ 167 просмотров chukcha 16 января Карта ******ы в админке ocmod Автор: pashast, 18 февраля 2016 ocmod ukraine (и ещё 2) Теги: ocmod ukraine карта админка 0 комментариев 13 401 просмотр pashast 18 февраля 2016 Несколько слешей после url: это норма? Автор: Zetx, 1 февраля 2019 19 ответов 1 811 просмотров WarStyle 18 ноября 2022 в файле index.php на первой строке автоматически появляется код, из-за чего выходит ошибка 500 Автор: AnGera, 5 января 2 ответа 216 просмотров Etegro 5 января Один и тот же товар должен иметь несколько ссылок. Как сделать? Автор: hasp, 16 ноября 2022 0 ответов 187 просмотров hasp 16 ноября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу. Последние темы Последние дополнения Последние новости Вся активность Главная Поддержка и ответы на вопросы Шаблоны, дизайн и оформление магазина VQMOD OCMOD замена нескольких строк
vladyka Опубликовано: 17 апреля 2016 Поделиться Опубликовано: 17 апреля 2016 Возможно, для кого-то будет полезно. Многострочный поиск в OCMOD Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 год спустя... krluch Опубликовано: 11 октября 2017 Поделиться Опубликовано: 11 октября 2017 Иногда при написании модификаторов для Опенкарт возникает необходимость поиска многострочных маркеров для более высокой точности. Фикс добавляет поддержку атрибута qoute, с которым используется функция preg_quote(). Изменения производятся в файле admin/controller/extension/modification.php. Нужно найти следующий фрагмент кода: $search = trim($operation->getElementsByTagName('search')->item(0)->textContent); $limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit'); $replace = trim($operation->getElementsByTagName('add')->item(0)->textContent); И заменить его на этот (добавилась строка): $search = $operation->getElementsByTagName('search')->item(0)->textContent; $limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit'); $quote = $operation->getElementsByTagName('search')->item(0)->getAttribute('quote'); $replace = $operation->getElementsByTagName('add')->item(0)->textContent; Далее после блока: // Limit if (!$limit) { $limit = -1; } Добавить этот: // Quote if ($quote == 'true') { $search = preg_quote($search); } Вот и все! Не забудьте сохранить файл и очистить кеш. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 11 месяцев спустя... stydent Опубликовано: 17 сентября 2018 Поделиться Опубликовано: 17 сентября 2018 (изменено) изменил admin/controller/extension/modification.php как написали. но мой модификатор не работает с двумя строчками. с одной все ок. чего может не хватать? <?xml version="1.0" encoding="utf-8"?> <modification> <name>my_hack</name> <code>2</code> <version>228</version> <author>Андрей</author> <link>5</link> <file path="catalog/view/theme/default/template/common/header.tpl"> <operation> <search reqex="true" quote="true" limit="2"><![CDATA[ <script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script> <link href="catalog/view/javascript/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" /> ]]></search> <add position="replace"><![CDATA[ 4545 ]]></add> </operation> </file> </modification> Изменено 17 сентября 2018 пользователем stydent Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 2 года спустя... Megafara Опубликовано: 4 января 2021 Поделиться Опубликовано: 4 января 2021 (изменено) Мне помогло убрать блок НАЛИЧИЕ вот так: // - следующий мод убирате блок НАЛИЧИЕ <file path="catalog/view/theme/newstore/template/product/product.tpl"> <operation> <search regex="true"><![CDATA[%<hr>[^<]*?<ul class="list-unstyled availability">[^.]*?</ul>%]]></search> <add position="replace"><![CDATA[]]></add> </operation> </file> Это касается как раз замены нескольких строк, потому что блок начинался с <HR>, а таких строк в файле было много! Изменено 4 января 2021 пользователем Megafara Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Подскажите как можно в 21 веке сделать нечто подобное: <operation> <search><![CDATA[<div id="recaptcha1">]]></search> <add position="replace"><![CDATA[<div class="g-recaptcha">]]></add> <search><![CDATA[var onloadCallback = function() {]]></search> <add position="replace" offset="1"><![CDATA[ var onloadCallback = function() { var divcaptcha = document.getElementsByClassName('g-recaptcha'); for (var i = 0; i < divcaptcha.length; i++) { grecaptcha.render(divcaptcha[i], { 'sitekey': '{{ site_key }}' }); } }; ]]></add> </operation> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Да именно это Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0 Перейти к списку тем Похожие публикации SEO PRO - работа с изображениями, перегенерация и замена на сторонний СЕО-модуль Автор: sevvvvvvko, 16 января 1 ответ 167 просмотров chukcha 16 января Карта ******ы в админке ocmod Автор: pashast, 18 февраля 2016 ocmod ukraine (и ещё 2) Теги: ocmod ukraine карта админка 0 комментариев 13 401 просмотр pashast 18 февраля 2016 Несколько слешей после url: это норма? Автор: Zetx, 1 февраля 2019 19 ответов 1 811 просмотров WarStyle 18 ноября 2022 в файле index.php на первой строке автоматически появляется код, из-за чего выходит ошибка 500 Автор: AnGera, 5 января 2 ответа 216 просмотров Etegro 5 января Один и тот же товар должен иметь несколько ссылок. Как сделать? Автор: hasp, 16 ноября 2022 0 ответов 187 просмотров hasp 16 ноября 2022 Сейчас на странице 0 пользователей Нет пользователей, просматривающих эту страницу.
krluch Опубликовано: 11 октября 2017 Поделиться Опубликовано: 11 октября 2017 Иногда при написании модификаторов для Опенкарт возникает необходимость поиска многострочных маркеров для более высокой точности. Фикс добавляет поддержку атрибута qoute, с которым используется функция preg_quote(). Изменения производятся в файле admin/controller/extension/modification.php. Нужно найти следующий фрагмент кода: $search = trim($operation->getElementsByTagName('search')->item(0)->textContent); $limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit'); $replace = trim($operation->getElementsByTagName('add')->item(0)->textContent); И заменить его на этот (добавилась строка): $search = $operation->getElementsByTagName('search')->item(0)->textContent; $limit = $operation->getElementsByTagName('search')->item(0)->getAttribute('limit'); $quote = $operation->getElementsByTagName('search')->item(0)->getAttribute('quote'); $replace = $operation->getElementsByTagName('add')->item(0)->textContent; Далее после блока: // Limit if (!$limit) { $limit = -1; } Добавить этот: // Quote if ($quote == 'true') { $search = preg_quote($search); } Вот и все! Не забудьте сохранить файл и очистить кеш. Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 11 месяцев спустя... stydent Опубликовано: 17 сентября 2018 Поделиться Опубликовано: 17 сентября 2018 (изменено) изменил admin/controller/extension/modification.php как написали. но мой модификатор не работает с двумя строчками. с одной все ок. чего может не хватать? <?xml version="1.0" encoding="utf-8"?> <modification> <name>my_hack</name> <code>2</code> <version>228</version> <author>Андрей</author> <link>5</link> <file path="catalog/view/theme/default/template/common/header.tpl"> <operation> <search reqex="true" quote="true" limit="2"><![CDATA[ <script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script> <link href="catalog/view/javascript/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" /> ]]></search> <add position="replace"><![CDATA[ 4545 ]]></add> </operation> </file> </modification> Изменено 17 сентября 2018 пользователем stydent Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 2 года спустя... Megafara Опубликовано: 4 января 2021 Поделиться Опубликовано: 4 января 2021 (изменено) Мне помогло убрать блок НАЛИЧИЕ вот так: // - следующий мод убирате блок НАЛИЧИЕ <file path="catalog/view/theme/newstore/template/product/product.tpl"> <operation> <search regex="true"><![CDATA[%<hr>[^<]*?<ul class="list-unstyled availability">[^.]*?</ul>%]]></search> <add position="replace"><![CDATA[]]></add> </operation> </file> Это касается как раз замены нескольких строк, потому что блок начинался с <HR>, а таких строк в файле было много! Изменено 4 января 2021 пользователем Megafara Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... 1 месяц спустя... susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Подскажите как можно в 21 веке сделать нечто подобное: <operation> <search><![CDATA[<div id="recaptcha1">]]></search> <add position="replace"><![CDATA[<div class="g-recaptcha">]]></add> <search><![CDATA[var onloadCallback = function() {]]></search> <add position="replace" offset="1"><![CDATA[ var onloadCallback = function() { var divcaptcha = document.getElementsByClassName('g-recaptcha'); for (var i = 0; i < divcaptcha.length; i++) { grecaptcha.render(divcaptcha[i], { 'sitekey': '{{ site_key }}' }); } }; ]]></add> </operation> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Shureg Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Да именно это Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться... Создайте аккаунт или войдите в него для комментирования Вы должны быть пользователем, чтобы оставить комментарий Создать аккаунт Зарегистрируйтесь для получения аккаунта. Это просто! Зарегистрировать аккаунт Войти Уже зарегистрированы? Войдите здесь. Войти сейчас Поделиться Больше способов поделиться... Подписчики 0
stydent Опубликовано: 17 сентября 2018 Поделиться Опубликовано: 17 сентября 2018 (изменено) изменил admin/controller/extension/modification.php как написали. но мой модификатор не работает с двумя строчками. с одной все ок. чего может не хватать? <?xml version="1.0" encoding="utf-8"?> <modification> <name>my_hack</name> <code>2</code> <version>228</version> <author>Андрей</author> <link>5</link> <file path="catalog/view/theme/default/template/common/header.tpl"> <operation> <search reqex="true" quote="true" limit="2"><![CDATA[ <script src="catalog/view/javascript/jquery/jquery-2.1.1.min.js" type="text/javascript"></script> <link href="catalog/view/javascript/bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen" /> ]]></search> <add position="replace"><![CDATA[ 4545 ]]></add> </operation> </file> </modification> Изменено 17 сентября 2018 пользователем stydent Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Megafara Опубликовано: 4 января 2021 Поделиться Опубликовано: 4 января 2021 (изменено) Мне помогло убрать блок НАЛИЧИЕ вот так: // - следующий мод убирате блок НАЛИЧИЕ <file path="catalog/view/theme/newstore/template/product/product.tpl"> <operation> <search regex="true"><![CDATA[%<hr>[^<]*?<ul class="list-unstyled availability">[^.]*?</ul>%]]></search> <add position="replace"><![CDATA[]]></add> </operation> </file> Это касается как раз замены нескольких строк, потому что блок начинался с <HR>, а таких строк в файле было много! Изменено 4 января 2021 пользователем Megafara Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Подскажите как можно в 21 веке сделать нечто подобное: <operation> <search><![CDATA[<div id="recaptcha1">]]></search> <add position="replace"><![CDATA[<div class="g-recaptcha">]]></add> <search><![CDATA[var onloadCallback = function() {]]></search> <add position="replace" offset="1"><![CDATA[ var onloadCallback = function() { var divcaptcha = document.getElementsByClassName('g-recaptcha'); for (var i = 0; i < divcaptcha.length; i++) { grecaptcha.render(divcaptcha[i], { 'sitekey': '{{ site_key }}' }); } }; ]]></add> </operation> Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Shureg Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
susl16c Опубликовано: 12 февраля 2021 Поделиться Опубликовано: 12 февраля 2021 Да именно это Ссылка на комментарий Поделиться на других сайтах Больше способов поделиться...
Рекомендованные сообщения