Помощь Поиск по тегам в Opencart 1.5.5.x

Anton_Fadeev

Постоялец
Регистрация
3 Фев 2014
Сообщения
50
Реакции
10
Родной поиск в опенкарте умеет искать товары по тегам, но делает это не очень хорошо. Например если указать теги у товара: "красный, желтый, зеленый" и потом в поиске ввести: "желтый, красный" или "красный желтый", то он его не найдет. А хотелось бы, чтобы он делил запрос на слова и сопоставлял с тегами в любой последовательности.

Никто этим не заморачивался? Может модули есть, которые заменяют родной поиск и там это реализовано?

Все - нашел решение. Тему можно закрывать!
 
Последнее редактирование модератором:
Файл:
Код:
catalog/model/catalog/product.php

Ищем:
Код:
$sql .= "pd.tag LIKE '%" . $this->db->escape($data['filter_tag']) . "%'"

Меняем ее на:
Код:
$implode_tag = array();
$words_tag = explode(' ', trim(preg_replace('/\s\s+/', ' ', $data['filter_tag'])));
foreach ($words_tag as $word_tag) {
$implode_tag[] = "pd.tag LIKE '%" . $this->db->escape($word_tag) . "%'";
}

if ($implode_tag) {
$sql .= " " . implode(" OR ", $implode_tag) . "";
}
 
Назад
Сверху