[Mod] Равнозначность тире и точки при поиске

mdss

♖♘♗♕♔♗♘♖
Регистрация
20 Фев 2007
Сообщения
1.152
Реакции
709
Понадобилось сделать, чтобы при поиске товаров тире и точка были равнозначными символами.
Например, чтобы при поиске аааа-вввв также выводило результаты аааа.вввв.
Решение.
Открываем файл /published/SC/html/scripts/core_functions/product_functions.php
Ищем функцию _searchPatternReplace и заменяем ее содержимое на такое:
PHP:
function _searchPatternReplace($string){
	static $patterns = array('/\\\\/',
							'/%/',
							'/_/',
							'/(^|[^\/]{1})(\?)/',
							'/([\/]{1})(\?)/',
							'/(^|[^\/]{1})(\*)/',
							'/([\/]{1})(\*)/',
							'/(^|[^\/]{1})\+/',
							'/([\/]{1})\+/',
							'/\-/'
							);
	static $replacements = array('\\\\\\\\',
								'\\%',
								'\\_',
								'\\1_',
								'?',
								'\\1%',
								'*',
								'\\1 ',
								'+',
								'.');
	return preg_replace($patterns,$replacements,$string);
	//return $res;
	//return str_replace(array('%','_','?','%'),array('\\%','\\_','_','%'),$string);
}
 
Ищем функцию _searchPatternReplace и заменяем ее содержимое на такое:

А можете еще подсказать который файл и где нужно править, который отвечает за транслитерацию страниц добавленных товаров? Чтобы подправить правила транслитерации? Спасибо заранее.
 
а подскажите как сделать что бы убирало все знаки при поиске? например тот же - ? например вводишь 04466-0у010 а в поиске выходило 044660у010 ну и так же искало
 
подскажите? убрать просто знак . тут? '.');
 
Судя по коду. Здесь вместо дефиса подставляется точка. А значит вместо 154-454-454 будут найдены товары 154.454.454
 
Назад
Сверху