Исправление необходимо, если используется стандартный модуль поиска Joomla и плагин поиска MijoShop. Суть проблемы: по умолчанию товары находятся, если в поиск ввести слова, идущие подряд в тексте названия товара, в описании или где-либо еще. Если товар называется например "Marburg Patent Decor 3D 1800", а мы будем искать "Marburg Decor", то ничего не будет найдено. Так же в компоненте поиска не работают параметры поиска: "Все слова", "Любое из слов", "Точное совпадение". Причина проста - разработчики не стали заморачиваться с этими опциями и в плагине работает лишь одно условие - поиск точного совпадения фразы. Решение: В файле plugins/search/mijoshop/mijoshop.php найти в 75-76 строке Код (PHP): break; } и добавить после этого Код (PHP): $wheres = array(); switch ($phrase) { case 'exact': $text = $db->Quote('%'.$db->escape($text, true).'%', false); $wheres2 = array(); $wheres2[] = 'LOWER(pd.name) LIKE '.$text; $wheres2[] = 'LOWER(pd.description) LIKE '.$text; $wheres2[] = 'LOWER(pt.tag) LIKE '.$text; $where = '(' . implode(') OR (', $wheres2) . ')'; break; case 'all': case 'any': default: $words = explode(' ', $text); $wheres = array(); foreach ($words as $word) { $word = $db->Quote('%'.$db->escape($word, true).'%', false); $wheres2 = array(); $wheres2[] = 'LOWER(pd.name) LIKE '.$word; $wheres2[] = 'LOWER(pd.description) LIKE '.$word; $wheres2[] = 'LOWER(pt.tag) LIKE '.$word; $wheres[] = implode(' OR ', $wheres2); } $where = '(' . implode(($phrase == 'all' ? ') AND (' : ') OR ('), $wheres) . ')'; break; } В 94-96 строке находим Код (PHP): ."WHERE (LOWER(pd.name) LIKE '%" . $db->getEscaped($text) . "%' OR LOWER(pd.description) LIKE '%" . $db->getEscaped($text). "%' OR LOWER(pt.tag) LIKE '%" . $db->getEscaped($text). "%') " и заменяем на Код (PHP): ."WHERE (".$where.")" После этого поиск должен заработать нормально. Код взят из плагина поиска контента и подправлен под MijoShop.