ajs Опубліковано: 30 липня 2015 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options...
Tom Опубліковано: 30 липня 2015 Share Опубліковано: 30 липня 2015 Ищем первую строку,меняем её и определённое количество после неё <add position="replace" offset=" количество строк"> 2 Надіслати Поділитися на інших сайтах More sharing options... AlexDW Опубліковано: 30 липня 2015 Share Опубліковано: 30 липня 2015 VQMOD / OCMOD ищут только по одной строке для поиска по нескольким - делать отдельно для каждой Надіслати Поділитися на інших сайтах More sharing options... puno Опубліковано: 30 липня 2015 Share Опубліковано: 30 липня 2015 Документация https://github.com/opencart/opencart/wiki/Modification-System Надіслати Поділитися на інших сайтах More sharing options... Otvet Опубліковано: 30 липня 2015 Share Опубліковано: 30 липня 2015 (змінено) Multiline Fix от rb2 попробовать стоит Змінено 30 липня 2015 користувачем Otvet Надіслати Поділитися на інших сайтах More sharing options... 8 months later... vladyka Опубліковано: 17 квітня 2016 Share Опубліковано: 17 квітня 2016 Возможно, для кого-то будет полезно. Многострочный поиск в OCMOD Надіслати Поділитися на інших сайтах More sharing options... 1 year later... krluch Опубліковано: 11 жовтня 2017 Share Опубліковано: 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); } Вот и все! Не забудьте сохранить файл и очистить кеш. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... stydent Опубліковано: 17 вересня 2018 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... Megafara Опубліковано: 4 січня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... Shureg Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Надіслати Поділитися на інших сайтах More sharing options... susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 Да именно это Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину VQMOD OCMOD замена нескольких строк Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV × Уже зареєстровані? Ввійти Реєстрація Ваші замовлення Назад Придбані модулі та шаблони Ваші рахунки Лист очікувань Альтернативні контакти Форум Новини ocStore Назад Офіційний сайт Демо ocStore 3.0.3.2 Демо ocStore 2.3.0.2.4 Завантажити ocStore Документація Історія версій ocStore Блоги Модулі Шаблони Назад Безкоштовні шаблони Платні шаблони Де купувати модулі? Послуги FAQ OpenCart.Pro Назад Демо Купити Порівняння × Створити... Important Information На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність. Я даю згоду
AlexDW Опубліковано: 30 липня 2015 Share Опубліковано: 30 липня 2015 VQMOD / OCMOD ищут только по одной строке для поиска по нескольким - делать отдельно для каждой Надіслати Поділитися на інших сайтах More sharing options... puno Опубліковано: 30 липня 2015 Share Опубліковано: 30 липня 2015 Документация https://github.com/opencart/opencart/wiki/Modification-System Надіслати Поділитися на інших сайтах More sharing options... Otvet Опубліковано: 30 липня 2015 Share Опубліковано: 30 липня 2015 (змінено) Multiline Fix от rb2 попробовать стоит Змінено 30 липня 2015 користувачем Otvet Надіслати Поділитися на інших сайтах More sharing options... 8 months later... vladyka Опубліковано: 17 квітня 2016 Share Опубліковано: 17 квітня 2016 Возможно, для кого-то будет полезно. Многострочный поиск в OCMOD Надіслати Поділитися на інших сайтах More sharing options... 1 year later... krluch Опубліковано: 11 жовтня 2017 Share Опубліковано: 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); } Вот и все! Не забудьте сохранить файл и очистить кеш. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... stydent Опубліковано: 17 вересня 2018 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... Megafara Опубліковано: 4 січня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... Shureg Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Надіслати Поділитися на інших сайтах More sharing options... susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 Да именно это Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину VQMOD OCMOD замена нескольких строк Покупцям Оплата розширень фізичними особами Оплата розширень юридичними особами Політика повернень Розробникам Регламент розміщення розширень Регламент продажу та підтримки розширень Віртуальний обліковий запис автора Політика просування оголошень API каталогу розширень Вирішення спорів щодо авторських прав Корисна інформація Публічна оферта Політика повернень Політика конфіденційності Платіжна політика Політика передачі особистих даних Політика прозорості Останні розширення SP Telegram повідомлення FREE Автор: spectre Відключити порожні категорії Автор: spectre SEO Автор тексту категорії / фільтра / блогу з датою оновлення контенту + мікророзмітка Автор: radaevich Промо банери в категоріях товарів Автор: IHOR1989 Trend - адаптивний універсальний шаблон Автор: DSV
puno Опубліковано: 30 липня 2015 Share Опубліковано: 30 липня 2015 Документация https://github.com/opencart/opencart/wiki/Modification-System Надіслати Поділитися на інших сайтах More sharing options...
Otvet Опубліковано: 30 липня 2015 Share Опубліковано: 30 липня 2015 (змінено) Multiline Fix от rb2 попробовать стоит Змінено 30 липня 2015 користувачем Otvet Надіслати Поділитися на інших сайтах More sharing options... 8 months later... vladyka Опубліковано: 17 квітня 2016 Share Опубліковано: 17 квітня 2016 Возможно, для кого-то будет полезно. Многострочный поиск в OCMOD Надіслати Поділитися на інших сайтах More sharing options... 1 year later... krluch Опубліковано: 11 жовтня 2017 Share Опубліковано: 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); } Вот и все! Не забудьте сохранить файл и очистить кеш. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... stydent Опубліковано: 17 вересня 2018 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... Megafara Опубліковано: 4 січня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... Shureg Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Надіслати Поділитися на інших сайтах More sharing options... susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 Да именно это Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку Последние темы Последние дополнения Последние новости Вся активність Головна Підтримка та відповіді на запитання. Шаблони, дизайн та оформлення магазину VQMOD OCMOD замена нескольких строк
vladyka Опубліковано: 17 квітня 2016 Share Опубліковано: 17 квітня 2016 Возможно, для кого-то будет полезно. Многострочный поиск в OCMOD Надіслати Поділитися на інших сайтах More sharing options... 1 year later... krluch Опубліковано: 11 жовтня 2017 Share Опубліковано: 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); } Вот и все! Не забудьте сохранить файл и очистить кеш. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... stydent Опубліковано: 17 вересня 2018 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... Megafara Опубліковано: 4 січня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... Shureg Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Надіслати Поділитися на інших сайтах More sharing options... susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 Да именно это Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0 Перейти до списку тем Зараз на сторінці 0 користувачів Ні користувачів, які переглядиють цю сторінку
krluch Опубліковано: 11 жовтня 2017 Share Опубліковано: 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); } Вот и все! Не забудьте сохранить файл и очистить кеш. Надіслати Поділитися на інших сайтах More sharing options... 11 months later... stydent Опубліковано: 17 вересня 2018 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... 2 years later... Megafara Опубліковано: 4 січня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options... 1 month later... susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options... Shureg Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Надіслати Поділитися на інших сайтах More sharing options... susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 Да именно это Надіслати Поділитися на інших сайтах More sharing options... Створіть аккаунт або увійдіть для коментування Ви повинні бути користувачем, щоб залишити коментар Створити обліковий запис Зареєструйтеся для отримання облікового запису. Це просто! Зареєструвати аккаунт Вхід Уже зареєстровані? Увійдіть тут. Вхід зараз Share More sharing options... Передплатники 0
stydent Опубліковано: 17 вересня 2018 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options...
Megafara Опубліковано: 4 січня 2021 Share Опубліковано: 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 Надіслати Поділитися на інших сайтах More sharing options...
susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 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> Надіслати Поділитися на інших сайтах More sharing options...
Shureg Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 1 час назад, susl16c сказал: Подскажите как можно в 21 веке сделать нечто подобное: Сделать что? Научиться не писать в одном <operation> несколько <search> ? 1 Надіслати Поділитися на інших сайтах More sharing options...
susl16c Опубліковано: 12 лютого 2021 Share Опубліковано: 12 лютого 2021 Да именно это Надіслати Поділитися на інших сайтах More sharing options...
Recommended Posts