star Опубликовано 4 марта, 2018 Жалоба Поделиться Опубликовано 4 марта, 2018 На сайте работает поиск по артикулу. Большинство артикулов заносились в админке в кирилической раскладке клавиатуры, например ищем на сайте артикул Т1000 или т1000 и товар находится а если в латинской T1000 или t1000 то нет. Как поправить чтобы искало и при запросе артикула с латинскими буквами идентичными внешне с кириллическими Цитата Ссылка на сообщение Поделиться на другие сайты
Noxter Опубликовано 4 марта, 2018 Жалоба Поделиться Опубликовано 4 марта, 2018 На сайте работает поиск по артикулу. Большинство артикулов заносились в админке в кирилической раскладке клавиатуры, например ищем на сайте артикул Т1000 или т1000 и товар находится а если в латинской T1000 или t1000 то нет. Как поправить чтобы искало и при запросе артикула с латинскими буквами идентичными внешне с кириллическимиРазницу между запорожцем и бентли видите? Ну вот и тут так же. Цитата Ссылка на сообщение Поделиться на другие сайты
Karabaska Опубликовано 4 марта, 2018 Жалоба Поделиться Опубликовано 4 марта, 2018 Как поправить чтобы искало и при запросе артикула с латинскими буквами идентичными внешне с кириллическимиИзменять скрипт поиска. Не особо сложно, но повозиться надо... Цитата Ссылка на сообщение Поделиться на другие сайты
star Опубликовано 5 марта, 2018 Автор Жалоба Поделиться Опубликовано 5 марта, 2018 Изменять скрипт поиска. Не особо сложно, но повозиться надо...даже возиться не пришлосьв файле поиска ajax/search_products.php ищем стороку $keyword = $simpla->request->get('query', 'string'); меняем её на function translit($k) { $k = (string) $k; // преобразуем в строковое значение $k = str_replace(array("\n", "\r"), " ", $k); // убираем перевод каретки $k = trim($k); // убираем пробелы в начале и конце строки $k = strtr($k, array('A'=>'А','a'=>'А','B'=>'В','C'=>'С','c'=>'С','E'=>'Е','e'=>'Е','H'=>'Н','K'=>'К','k'=>'К','M'=>'М','O'=>'О','o'=>'О','P'=>'Р','p'=>'Р','T'=>'Т','t'=>'Т')); // меняем латинские буквы => на кирилицу return $k; // возвращаем результат } $keyword = $simpla->request->get('query'); $keyword = translit(preg_replace('/[^\p{L}\p{Nd}\d\s_\-\.\%\s\/]/ui', '', $keyword)); поиск по артикулу вне зависимости от раскладки клавиатуры работает.Нюансы конечно есть - правильнее будет организовать запрос в базу транслитом только по артикулам. Возможно еще что-то пропустил, но это лучше чем ничего) Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.