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

Поиск в описаниях по любому из слов фразы


Recommended Posts

OpenCart 1.5.5.2. Поиск по названию товара разбивает поисковую фразу на отдельные слова и ищет каждое слово. Например товар "Стул из красного дерева" будет найден по поисковой фразе "стул из дерева", "стул красного" и т.п. А вот в описаниях товара поиск ищет именно всю фразу, а не отдельные слова. То есть если в описании товара значится "стул из красного дерева синего цвета маленький", то по фразе "стул синего цвета" или "стул маленький" не найдет ничего. Подскажите, где порыться?

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


В catalog\model\catalog\product.php в теле функции getProducts ищите часть кода

            if (!empty($data['filter_name'])) {
                $implode = array();

                $words = explode(' ', trim(preg_replace('/\s\s+/', ' ', $data['filter_name'])));

                foreach ($words as $word) {
                    $implode[] = "pd.name LIKE '%" . $this->db->escape($word) . "%'";
                }
                
                if ($implode) {
                    $sql .= " " . implode(" AND ", $implode) . "";
                }

                if (!empty($data['filter_description'])) {
                    $sql .= " OR pd.description LIKE '%" . $this->db->escape($data['filter_name']) . "%'";
                }
            }

его и мучайте :ugeek:

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

Ага, спасибо! Так как я "большой" спец в php, то умею действовать только методом тыка. Для начала, тупо поменял строку 

 

$sql .= " OR pd.description LIKE '%" . $this->db->escape($data['filter_name']) . "%'";

 

на строку:

 

$sql .= " OR pd.description LIKE '%" . $this->db->escape($word) . "%'";

 

Стало искать и по любым словам из описания. Но! Только если во фразе они расположены в алфавитном порядке, начиная с цифр )) Куда копать дальше?

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


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
×
×
  • Створити...

Important Information

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