Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

[Решено] Замена текста в 'description' OpenCart 2.X.X


Recommended Posts

Наверняка у кого-нибудь возникала ситуация с подменой некоторых словосочетаний в описании товара. Здесь выкладываю суть проблемы и прошу помощи.

 

Ситуация следующая:

 

Товары подгружаются от донора посредством api и по задаче cron периодически обновляются.

В описании некоторых товаров присутствуют элементы слов, которые необходимо заменить.

 

Через sql запрос в виде UPDATE `название таблицы` SET `поле` = REPLACE(`поле`, 'старое слово', 'новое слово'); - все удачно меняется, но обновляемые периодически товары снова выводят прежний текст.

 

В данной теме вижу два решения вопроса:

1. Необходимость написания PHP скрипта, в котором сначала нужно подключиться к БД и только после подключения выполнять запрос UPDATE, но отсюда рождается следующий вопрос - будет ли "поспевать" задача скрипта своевременно изменять описание за постоянно подгружаемыми товарами?;

2. Выполнение скрипта в корневом файле, как полагаю этим файлом будет являться product.php в пути catalog/controller/product - в этом случае замена будет производиться сразу без интервалов времени;

 

Какие будут предложения по этому поводу?

Надіслати
Поділитися на інших сайтах


>> Товары подгружаются от донора посредством api и по задаче cron периодически обновляются.

вот там и делай все изменения.

зачем что-то другое изобретать?..

Надіслати
Поділитися на інших сайтах

К сожалению не удается таким способом, вот запрос на внесение изменений в бд:

 

$this->db->query("DELETE FROM " . DB_PREFIX . "product_description WHERE product_id = '" . (int)$product_id . "'");
 
                foreach ($data['product_description'] as $language_id => $value) {
                    $query = "
                        INSERT INTO " . DB_PREFIX . "product_description
                        SET product_id = '" . (int)$product_id . "',
                            language_id = '" . (int)$language_id . "',
                            name = '" . $this->db->escape($value['name']) . "',
                            description = '" . $this->db->escape($value['description']) . "'";
                    print 'FILE: ' . __FILE__ . ' | LINE: ' . (__LINE__) . ' | $query = <pre>' . print_r($query, true) . "</pre><br>\n";
                    $this->db->query($query);
                }

 

где

description = '" . $this->db->escape($value['description']) . "'";
просто записывает поле с описанием товара от донора.

Там то мне и нужно заменить в самом описании словосочетание, а оно состоит из "текст ... искомое словосочетание...текст".

Змінено користувачем afwollis
Надіслати
Поділитися на інших сайтах


Гість
Ця тема закрита для публікації повідомлень.

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.