Всем доброго времени суток! Помогите пожалуйста человеку не разбирающемуся в программировании. Есть интернет магазин, много номенклатуры в названии которых присутствует знак "-", к примеру Су-22, F-14 и т.д. В самой базе сайта, в админке, всё замечательно ищет, набрал F-14 он все их и нашел. А вот на сайте через поиск, никак не хочет. Читал, разбирался, но в силу своего скудоумия не смог победить проблему. Нашел что это из за того что в search.php прописано, не воспринимать знак "-", пробовал менять:
/* Copied from Drupal search module, except for \x{0}-\x{2f} that has been replaced by \x{0}-\x{2c}\x{2e}-\x{2f} in order to keep the char '-' */
define('PREG_CLASS_SEARCH_EXCLUDE',
'[color=red]\x{0}-\x{2c}\x{2e}-\x{2f}[/color]\x{3a}-\x{40}\x{5b}-\x{60}\x{7b}-\x{bf}\x{d7}\x{f7}\x{2b0}-'.
Выделенное красным по идее разрешает знак "-", дальше по тексту убирал отовсюду знак "-", ничего не помогает... другого решения пока не нашел...
if ($indexation) {
$string = preg_replace('/[._-]+/', ' ', $string);
} else {
$words = explode(' ', $string);
$processed_words = array();
// search for aliases for each word of the query
foreach ($words as $word) {
$alias = new Alias(null, $word);
if (Validate::isLoadedObject($alias)) {
$processed_words[] = $alias->search;
} else {
$processed_words[] = $word;
}
}
$string = implode(' ', $processed_words);
$string = preg_replace('/[._]+/', '', $string);
$string = ltrim(preg_replace('/([^ ])-/', '$1 ', ' '.$string));
$string = preg_replace('/[._]+/', '', $string);
$string = preg_replace('/[^\s]-+/', '', $string);
}
На всякий случай вложил оригинал файла search.php который у меня. Подскажите пожалуйста как сделать что бы поиск нормально воспринимал знак "-" (тире). Так в остальном поиск работает превосходно, загвоздка только в этом знаке.