mascW Prestashop 1.6.1.1 napotkałem na problem z wyszukiwaniem produktów, które mają polskie znaki w nazwie, np. (w nawiązaniu do szumu medialnego dookoła trybunału konstytucyjnego) – “Masz na ból dupy” ;)

Na etapie indekascji produktów skrypt usuwa polskie znaki, zamieniają je na ich “zwykłe” odpowiedniki (“ó” -> “o”, “ś” -> “s”, itd.), stąd niektóre produkty dają się odnaleźć po nazwie bez polskich znaków.

Aby rozwiązać ten problem należy w pliku /classes/Search.php w okolicy linii 169 wyłączyć funkcję zamieniającą polskie znaki, tzn. z:

$string = Tools::replaceAccentedChars(trim(preg_replace('/\s+/', ' ', $string)));

robimy

//$string = Tools::replaceAccentedChars(trim(preg_replace('/\s+/', ' ', $string)));

Nie wiem czy zmiana ma jakieś skutki uboczne ale rozwiązuje problem, może potem sprawdzę czy da się zmienić funkcję tak aby usuwała niepożądane znaki ale pozostała polskie w spokoju.

Po zmianie należy w panelu administracyjnym przebudować cały indeks produktów.