Перейти к содержанию

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

Добрый день, может кто подскажет как решить данную задачу:

 

в карточке товаре, в описании удалить кусок текста.

Спойлер

Стоит отметить, что при рывковых проводках эта катушка относительно недорогого диапазона работает лучше, чем более дорогие аналоги.

Технические характеристики:

  • Фрикцион: передний
  • Количество подшипников: 5+1
  • Вес: 265 гр.
  • Передаточное число: 5.1:1
  • Лесоёмкость: 0.235-150 / 0.285-100

необходимо удалить:

 

"Технические характеристики:" и все что идет за этой фразой.  в 2000 товарах.  (эти товары в определенных категориях, заранее известны)

Шаблонная фраза только "Технические характеристики:

данный текст всегда в конце описания

 

upd (добавил ссылку на товар)

https://www.fishers-house.ru/spinningi/spinningi-forsage-koreya/forsage-military/spinning-forsage-military-s-60-183m-2-7gr.html

Изменено пользователем PoliteX

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


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

Дайте ссылку на товар

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


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

вам нужно удалить все что посе Технические характеристики: ?

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


Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, prived сказал:

http://prntscr.com/kivxqs

главне внимательно прочитать ) 

Быстро читал))))

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


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

как вариант, для работы с руглярками PHP

https://regex101.com/r/Yh6hJ8/3

 

я бы задачу решил средствами sql: запустил бы update по таблице с описанием товаров, предварительно убедившись, что вот этот селект работает корректно:

SELECT REGEXP_REPLACE(opd.description, '^Технические характеристики:[\W,\w,\d]*', '') FROM oc_product_description opd

P.S.: функция REGEXP_REPLACE появилась в MySQL 8.0+. У Вашего хостера, вполне вероятно, лишь 5.5.*

P.P.S: вполне возможно, что Ваш текст "Технические характеристики: и бла-бла-бла" на самом деле обрамлен всяким HTML. То есть в базе лежит не "голый" текст и нужна будет более сложная регулярка

P.P.P.S: делай бэкап таблицы, если не уверен на все 100!

Изменено пользователем 100napb

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


Ссылка на сообщение
Поделиться на другие сайты
$product_info['description'] = preg_replace('#(<strong>Технические характеристики:</strong>(.+?)</ul>)#sm','',html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8'));

 

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


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

В контроллере catalog/controller/product/product.php

Вставьте перед

 

$data['description'] = html_entity_decode($product_info['description'], ENT_QUOTES, 'UTF-8');

А эту строку замените вот так 
 

$data['description'] = $product_info['description'];

 

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


Ссылка на сообщение
Поделиться на другие сайты
35 минут назад, 100napb сказал:

как вариант, для работы с руглярками PHP

https://regex101.com/r/Yh6hJ8/3

 

я бы задачу решил средствами sql: запустил бы update по таблице с описанием товаров, предварительно убедившись, что вот этот селект работает корректно:


SELECT REGEXP_REPLACE(opd.description, '^Технические характеристики:[\W,\w,\d]*', '') FROM oc_product_description opd

P.S.: функция REGEXP_REPLACE появилась в MySQL 8.0+. У Вашего хостера, вполне вероятно, лишь 5.5.*

P.P.S: вполне возможно, что Ваш текст "Технические характеристики: и бла-бла-бла" на самом деле обрамлен всяким HTML. То есть в базе лежит не "голый" текст и нужна будет более сложная регулярка

P.P.P.S: делай бэкап таблицы, если не уверен на все 100!

лучше в контроллере сделать. Так как человек не силен в sql и может че нить навернуть.

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


Ссылка на сообщение
Поделиться на другие сайты
18 минут назад, 100napb сказал:

P.P.S: вполне возможно, что Ваш текст "Технические характеристики: и бла-бла-бла" на самом деле обрамлен всяким HTML. То есть в базе лежит не "голый" текст и нужна будет более сложная регулярка

MySQL: 5.7

так и есть

 

&lt;p style=&quot;text-align: justify;&quot;&gt;
	Уникальная новинка от &lt;strong&gt;Forsage&lt;/strong&gt; – спиннинг &lt;strong&gt;Military&lt;/strong&gt; &lt;strong&gt;S&lt;/strong&gt;, бросающийся в глаза своим брутальным дизайном. Чёрно-серый матовый бланк в сочетании с камуфляжной рукоятью, выполненной из ЭВА, – такой стиль сражает наповал.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
	Стоит взять в руки это удилище и сразу понимаешь, что Forsage Military S – добротный универсальный боец, который уверено работает с приманками любого типа. Этот спиннинг отличается небольшим весом, быстрым строем и применяется для ловли с берега небольшого водоёма или с лодки на крупной реке или озере.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
	Спиннинг Forsage Military S обладает прекрасным уровнем исполнения всех деталей, характерным для спиннингов самого высокого класса. Фурнитура сделана из лёгкого и прочного титанового сплава со вставками из диоксида циркония. Благодаря быстрому строю и прогрессивной расстановке колец, данный спиннинг обладает значительным запасом прочности, хорошей посылистостью и высокой сенсорикой. Добавьте сюда ВЕЛИКОЛЕПНУЮ ЦЕНУ, и Вы получите отличный инструмент для разнообразных рыбалок!&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
	&lt;strong&gt;Характеристики:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li style=&quot;text-align: justify;&quot;&gt;
		Длина: 183 см.&lt;/li&gt;
	&lt;li style=&quot;text-align: justify;&quot;&gt;
		Транспортировочная длина: 95 см.&lt;/li&gt;
	&lt;li style=&quot;text-align: justify;&quot;&gt;
		Тест: 2-7 гр.&lt;/li&gt;
	&lt;li style=&quot;text-align: justify;&quot;&gt;
		Строй: Fast&lt;/li&gt;
	&lt;li style=&quot;text-align: justify;&quot;&gt;
		Тип: двучастник&lt;/li&gt;
&lt;/ul&gt;

 

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


Ссылка на сообщение
Поделиться на другие сайты
11 минут назад, PoliteX сказал:
MySQL: 5.7

так и есть

 


&lt;p style=&quot;text-align: justify;&quot;&gt;
	Уникальная новинка от &lt;strong&gt;Forsage&lt;/strong&gt; – спиннинг &lt;strong&gt;Military&lt;/strong&gt; &lt;strong&gt;S&lt;/strong&gt;, бросающийся в глаза своим брутальным дизайном. Чёрно-серый матовый бланк в сочетании с камуфляжной рукоятью, выполненной из ЭВА, – такой стиль сражает наповал.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
	Стоит взять в руки это удилище и сразу понимаешь, что Forsage Military S – добротный универсальный боец, который уверено работает с приманками любого типа. Этот спиннинг отличается небольшим весом, быстрым строем и применяется для ловли с берега небольшого водоёма или с лодки на крупной реке или озере.&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
	Спиннинг Forsage Military S обладает прекрасным уровнем исполнения всех деталей, характерным для спиннингов самого высокого класса. Фурнитура сделана из лёгкого и прочного титанового сплава со вставками из диоксида циркония. Благодаря быстрому строю и прогрессивной расстановке колец, данный спиннинг обладает значительным запасом прочности, хорошей посылистостью и высокой сенсорикой. Добавьте сюда ВЕЛИКОЛЕПНУЮ ЦЕНУ, и Вы получите отличный инструмент для разнообразных рыбалок!&lt;/p&gt;
&lt;p style=&quot;text-align: justify;&quot;&gt;
	&lt;strong&gt;Характеристики:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
	&lt;li style=&quot;text-align: justify;&quot;&gt;
		Длина: 183 см.&lt;/li&gt;
	&lt;li style=&quot;text-align: justify;&quot;&gt;
		Транспортировочная длина: 95 см.&lt;/li&gt;
	&lt;li style=&quot;text-align: justify;&quot;&gt;
		Тест: 2-7 гр.&lt;/li&gt;
	&lt;li style=&quot;text-align: justify;&quot;&gt;
		Строй: Fast&lt;/li&gt;
	&lt;li style=&quot;text-align: justify;&quot;&gt;
		Тип: двучастник&lt;/li&gt;
&lt;/ul&gt;

 

Моя регулярка все делает. Уже проверено.

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


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

а я делал такое через редактор кода за 5 минут 

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


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

та ну нафик регулярку

description = explode('Тезнические харатериситки', product['description'])

product['description'] = description[0];

 

 

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


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

del.

Хорошо, что хорошо заканчивается :)

Изменено пользователем 100napb

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


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

спасибо. помучаю.

 

но контроллер не подходит.  так как в определенных лишь категориях это надо проделать

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


Ссылка на сообщение
Поделиться на другие сайты
5 минут назад, PoliteX сказал:

но контроллер не подходит.  так как в определенных лишь категориях это надо проделать

а какая разница, тем более что в контроллере можно четко указать где и откуда

А проще всего - свой временный контроллер - сделал и забыл

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


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

Блин, я думал вопрос уже решенный...

 

вот рабочий селект на  SQL, без регулярки. Просто, быстро и надежно.

  • В запросе можно указать id-шники КОНКРЕТНЫХ категорий товаров, в которых нужно что-то заменить. Для примера, у меня это 62, 63.
  • В переменную @find НУЖНО вписать ВАШУ строку, включая html тэги, начиная с которой всё последующее из описания товаров будет вырезаться.

 

Id-шники категорий элеметнарно подсмотреть в админке опернкарта - просто навести мышкой на иконку карандашика редактирования категории и посмотреть на ссылку перехода - как на рисунке

image.thumb.png.65a75db091b762e039aa88878bd10881.png

Если селект возвращает правильные результаты, переделывайте его в update и profit.

Если не уверены на 100%, выполняя апдейт по базе, то делайте бекап таблицы!!!

 

SET @find = '&lt;strong&gt;Характеристики:&lt;';

SELECT
	REPLACE(opd.description, SUBSTRING(opd.description, LOCATE(@find, opd.description)), '')
FROM 
	oc_product_description opd
WHERE 
	opd.product_id IN (SELECT product_id FROM oc_product_to_category WHERE category_id IN (62, 63));

 

специально убрал под спойлер пример апдейта

Spoiler

UPDATE oc_product_description opd SET opd.description =
  REPLACE(opd.description, SUBSTRING(opd.description, LOCATE(@find, opd.description)), '')
WHERE opd.product_id IN (SELECT
    product_id
  FROM oc_product_to_category
  WHERE category_id IN (0));

 

Изменено пользователем 100napb

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


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

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

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

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

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

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

Войти

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

Войти

  • Последние посетители   0 пользователей онлайн

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

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.