Крупнейшая биржа рекламы в Телеграм
0 Пользователей и 1 Гость просматривают эту тему.
  • 1 Ответов
  • 846 Просмотров
*

orchanin

  • Захожу иногда
  • 172
  • 3 / 0
Поиск словоформа
« : 04.05.2011, 18:38:10 »
Очень странно что стандартный модуль поиска vm не может наити ни один холодильник (например) если в форме поиска вбить холодильникИ! Искал в форуме и гугле но не нашел что бы эту проблему кто то както решил ! В настройках магазина тоже не нашел ! Как можно решить проблему не прибегая к стандартному модулю Joomla?
*

orchanin

  • Захожу иногда
  • 172
  • 3 / 0
Re: Поиск словоформа
« Ответ #1 : 05.05.2011, 18:46:41 »
Блин вроде как нашел где копать
файлы administrator/components/com_virtuemart/classes
ps_main.php и

/html/shop_browse_queries.php

Даже код вот который как я понимаю за это отвечает
Мне представляеться что нужно обрезать у ключевого слова которое сравниваеться стаблицей последние символы например 1 или 2 но мои попытки провалились

Код
$keywordArr = vmGetCleanArrayFromKeyword( $keyword );
// This is the "advanced" search, filter by Keyword1 and Keyword2
$keyword1Arr = vmGetCleanArrayFromKeyword( $keyword1 );
$keyword2Arr = vmGetCleanArrayFromKeyword( $keyword2 );

// This is the "normal" search
if( !empty($keywordArr) ) {
$sq = "(";
$numKeywords = count( $keywordArr );
$i = 1;
foreach( $keywordArr as $searchstring ) {
$sq .= "\n (`#__{vm}_product`.`product_name` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_sku` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_s_desc` LIKE '%$searchstring%' OR ";
$sq .= "\n `#__{vm}_product`.`product_desc` LIKE '%$searchstring%') ";

if( $i++ < $numKeywords ) {
$sq .= "\n  AND ";
}
}
$sq .= ")";
$where_clause[] = $sq;
}


Код
function vmGetCleanArrayFromKeyword( $keyword ) {
global $database;

$keywordArr = array();

if( empty( $keyword )) return $keywordArr;

$keywords = explode( " ", $keyword, 10 );

foreach( $keywords as $searchstring ) {
$searchstring = trim( stripslashes($searchstring) );
$strlen = strlen($searchstring);
if( $strlen > 2 ) {


/*if( $searchstring[0] == "\"" || $searchstring[0]=="'" )  {
$searchstring[0] = " ";
}
if( $searchstring[strlen($searchstring)-1] == "\"" || $searchstring[strlen($searchstring)-1]=="'" ) {
$searchstring[strlen($searchstring)-1] = " ";
}*/
$searchstring = $database->getEscaped( $searchstring );
$searchstring = str_replace('\"', '"', $searchstring );
$keywordArr[] = $searchstring;

}
}
return $keywordArr;
}


Я перепробывал много разных вариантов одним из них был такой
Изменил строку
Код
$searchstring = str_replace('\"', '"', $searchstring );
На
Код
$searchstring = str_replace("/(.*).$/", "\\2", $searchstring );
Вроде как должно было обрезать перед сравнение но не чего не вышло
Поможите люди добрые!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Поиск по VirtueMart через поиск Joomla

Автор userxp

Ответов: 82
Просмотров: 56025
Последний ответ 02.11.2015, 19:48:59
от crazybug
Поиск виртуемара 1.1.9

Автор Вараника

Ответов: 0
Просмотров: 673
Последний ответ 16.05.2015, 01:25:41
от Вараника
VirtueMart 1.1.9. на Joomla 1.5.25. Поиск по 1-ой категории.

Автор wmvova

Ответов: 8
Просмотров: 929
Последний ответ 18.12.2014, 15:04:06
от wmvova
Частично не работает поиск в связке VirtueMart и sh404

Автор tutrus13

Ответов: 13
Просмотров: 2581
Последний ответ 20.03.2013, 16:07:02
от fsv
Не работает поиск по магазину. выкидывает на страницу /shop.html

Автор eu4ria

Ответов: 1
Просмотров: 970
Последний ответ 11.02.2013, 12:26:21
от robert