Jump to content

Recommended Posts

На сайте работает поиск по артикулу. Большинство артикулов заносились в админке в кирилической раскладке клавиатуры, например ищем на сайте артикул Т1000 или т1000 и товар находится а если в латинской T1000 или t1000 то нет. Как поправить чтобы искало и при запросе артикула с латинскими буквами идентичными внешне с кириллическими

Link to post
Share on other sites

На сайте работает поиск по артикулу. Большинство артикулов заносились в админке в кирилической раскладке клавиатуры, например ищем на сайте артикул Т1000 или т1000 и товар находится а если в латинской T1000 или t1000 то нет. Как поправить чтобы искало и при запросе артикула с латинскими буквами идентичными внешне с кириллическими

Разницу между запорожцем и бентли видите? Ну вот и тут так же.
Link to post
Share on other sites

Как поправить чтобы искало и при запросе артикула с латинскими буквами идентичными внешне с кириллическими

Изменять скрипт поиска. Не особо сложно, но повозиться надо...
Link to post
Share on other sites

Изменять скрипт поиска. Не особо сложно, но повозиться надо...

даже возиться не пришлось

в файле поиска 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));

поиск по артикулу вне зависимости от раскладки клавиатуры работает.

Нюансы конечно есть - правильнее будет организовать запрос в базу транслитом только по артикулам. Возможно еще что-то пропустил, но это лучше чем ничего)

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...