Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 0 Ответов
  • 1824 Просмотров
*

Шмайсер

  • Давно я тут
  • 801
  • 35 / 3
Всем привет, ситуация такая. Есть штатный модуль mod_virtuemart_search, работает не в расширенном режиме. Но, есть маленькая особенность:
если у нас в магазине забит товар с артикулом ns001-p123-ba14 (обратите внимание на то что в артикуле присутствуют тире), а пользователь в поисковую форму забивает его вот так ns001p123ba14 ( тоесть без тире), то он этот товар не найдет. Или же наоборот - в артикуле тире нет, а юзер забивает с тире - ситуация повторяется, товар не найден. Я решил это дело исправить, и нашел ( вроде бы) функцию, которая отвечает за это дело ( файл administrator/components/com_virtuemart/classes/ps_main.php)
Код
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 );
так или иначе влияет на выдачу результатов поиска в зависимости от присутствующих символов. Но вот незадача - как я ни пытался, не могу корректно туда прописать те условия, что мне нужны.
А нужно вот что
Чтобы поиск искал только цифры и латинские буквы, но при этом игнорировал как лишние ( их нет в оригинальном коде) так и отсутствующие ( есть в оригинальном коде) символы ( тире, скобки, кавычки и т.д)
пример : артикул ns001-p123-ba14 ( именно так забит в магазине)
пользователь вводит ns001p123ba14 - товар находит
пользователь вводит ns0\01p1-23ba/14 - товар находит
но при этом, комбинация из букв и цифр должна совпадать с оригинальной, тоесть
артикул ns001-p123-ba14
пользователь вводит ns001p123ba15 - товар не находит.
Гуру php, подскажите как так сделать?
Разработка сайтов любой сложности, на Joomla 3.9-4.x и не только на ней. Пишу компоненты, модули и плагины на заказ. Переношу сайты с ветки 2.5.х на 4-ю версию Joomla. Пишу любые скрипты и интерфейсы.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Изменить запрос поиска mod_virtuemart_search

Автор Tokyo

Ответов: 1
Просмотров: 1426
Последний ответ 06.06.2013, 02:03:57
от fsv
Модификация mod_virtuemart_search

Автор andruhaa

Ответов: 3
Просмотров: 5002
Последний ответ 28.01.2012, 22:39:21
от Niko1
Модуль поиска mod_virtuemart_search.php ограничить поиск

Автор cuba

Ответов: 4
Просмотров: 2759
Последний ответ 05.10.2011, 14:13:27
от Solary
mod_virtuemart_search

Автор wolf34

Ответов: 2
Просмотров: 1794
Последний ответ 15.04.2011, 01:48:19
от Phoenix-ann
Нужна помощь с модулем mod_virtuemart_search

Автор vitusik89

Ответов: 0
Просмотров: 1363
Последний ответ 18.01.2011, 11:48:18
от vitusik89