Форум русской поддержки Joomla!® CMS
09.12.2016, 11:48:06 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

GENIUS VM AJAX SEARCH регистронезавизимый поиск

 (Прочитано 1640 раз)
0 Пользователей и 1 Гость смотрят эту тему.
lustoff
Осваиваюсь на форуме
***

Репутация: +4/-1
Offline Offline

Сообщений: 89


« : 12.06.2014, 12:24:14 »

Здравствуйте, форумчане!
Использую для AJAX поиска на сайте модуль GENIUS VirtueMart AJAX SEARCH страница на сайте разработчика http://www.genius-webdesign.com/joomla-extensions/38-genius-virtuemart-ajax-search
VirtueMart 2.6.0a
Работает, вроде бы, нормально, только поиск получился регистрозависимым, если вводить кириллические буквы (латинскими буквами - регистронезависимый).
Подскажите, пожалуйста, как поправить модуль, чтоб искал без учета регистра?
Если я правильно понял, то поиск осуществляется в файле \modules\mod_genius_vm_ajax_search_revamped\ajax\index.php
в куске
Код
$ab = explode(' ', $keyword);
 $ccc='';
 $ccc2='';
     foreach ($ab as $k)
     {
       if (!empty($k))
      {
 
     if($ccc==''){        
     $ccc.= " concat(product_name, customtitle) RLIKE '".$db->getEscaped($k)."' AND";
}
else{
      $ccc.= " concat(product_name, customtitle) RLIKE '".$db->getEscaped($k)."' AND";
}
 
if($ccc2==''){
     $ccc2.= " product_gtin RLIKE '".$db->getEscaped($k)."' AND";
}
else{
       $ccc2.= " product_gtin RLIKE '".$db->getEscaped($k)."' AND";
}
 
 
  }
  else {
  $ccc2.= " product_gtin RLIKE '0' AND";
  $ccc.= " concat(product_name, customtitle) RLIKE '0' AND";
  }
}
Файл прикрепляю

Примечание. "product_gtin" это я ставил вместо "product_sku", чтоб искало по этому полю - работает. product_gtin у меня каталожный номер, product_sku - порядковый номер (артикул).

* index.zip (7.32 Кб - загружено 44 раз.)
« Последнее редактирование: 12.06.2014, 12:50:35 от lustoff » Записан
lustoff
Осваиваюсь на форуме
***

Репутация: +4/-1
Offline Offline

Сообщений: 89


« Ответ #1 : 14.07.2014, 08:51:45 »

Здравствуйте, форумчане!
Возьмется кто за доработку данного модуля за денежное вознаграждение?
Записан
marveloff
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #2 : 10.09.2014, 01:06:38 »

Здравствуйте lustoff. Удалось ли решить данную проблему?
Записан
vovikk
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #3 : 06.10.2014, 09:37:38 »

Добрый день, Может кто то решил данный вопрос, очень нужно что бы модуль не учитывал регистр при поиске.
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #4 : 06.10.2014, 10:23:14 »

ну а если вместо RLIKE использовать LIKE оператор?
Записан
asteroidx
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 1


« Ответ #5 : 06.12.2014, 11:42:54 »

Здравствуйте. Кто нибудь нашел решение данной проблемы?
Записан
lakshmi
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 177



« Ответ #6 : 16.01.2015, 14:34:48 »

Попробуйте эту версию https://yadi.sk/d/GDRrhzBke2UUH. Она попроще но зато регистронезависима. И там действительно вместо оператора RLIKE используется  LIKE, проверял на Joomla 2.5.28 и VirtueMart 2.6.14. Хотелось бы еще доработать его чтобы внизу отобразить кнопку все результаты поиска. Мысли есть как это сделать буду пробовать если что отпишусь.
« Последнее редактирование: 16.01.2015, 14:39:23 от lakshmi » Записан
lakshmi
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 177



« Ответ #7 : 17.01.2015, 01:38:59 »

ссылку на все товары сделал так
Код:
echo '</div><a href="search?keyword='. $keyword .'&limitstart=0&option=com_virtuemart&view=category&Itemid=132" title="Все результаты поиска..." >Отобразить все результаты поиска...</a></div>';
Примерно в районе строки 708 вместо сайта разработчика вставил этот код. Вообще если будет интересно посомтреть как можно настроить можно посмотреть здесь http://teragrad.com/. Мне кажется получилось неплохо, но я бы еще добавил бы кнопку искать, ведь сейчас поиск работает только через ссылку "Отобразить все результаты поиска..." и еще AJAX, но AJAX показывает только небольшое количество товаров а кнопка искать справа смотрелась бы очень логично.
Записан
Andrey-Haker
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #8 : 04.02.2015, 18:31:31 »


Всем привет!
Ладно жалко Вас стало чудиков,

if($ccc==''){          
         $ccc.= " concat(product_name, customtitle, product_s_desc) LIKE '%".$db->getEscaped($k)."%' AND";
            }
            else{
          $ccc.= " concat(product_name, customtitle, product_s_desc) LIKE '%".$db->getEscaped($k)."%' AND";
            }

Это нужно заменить 355-360 строка,файл index.php

Где лежит я думаю догадаетесь.

 
« Последнее редактирование: 04.02.2015, 18:38:47 от Andrey-Haker » Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3591


« Ответ #9 : 04.02.2015, 18:46:23 »


if($ccc==''){           
         $ccc.= " concat(product_name, customtitle, product_s_desc) LIKE '%".$db->getEscaped($k)."%' AND";
            }
            else{
          $ccc.= " concat(product_name, customtitle, product_s_desc) LIKE '%".$db->getEscaped($k)."%' AND";
            }

 

Тему не читал, только последнее сообщение. Зачем проверка? Почему не сразу
Код
$ccc.= " concat(product_name, customtitle, product_s_desc) LIKE '%".$db->getEscaped($k)."%' AND";
?
Записан
Andrey-Haker
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #10 : 04.02.2015, 21:41:52 »

Нужно ещё заменить с 405 по 417

if($cc==''){          
         $cc.= " concat(category_name,category_description) LIKE '%".$db->getEscaped($k)."%' AND";
            }
            else{
          $cc.= " concat(category_name,category_description) LIKE '%".$db->getEscaped($k)."%' AND";
            }
            
           if($manfcc==''){          
         $manfcc.= " concat(mf_name,mf_desc) LIKE '%".$db->getEscaped($k)."%' AND";
            }
            else{
          $manfcc.= " concat(mf_name,mf_desc) LIKE '%".$db->getEscaped($k)."%' AND";
            }

Чтобы можно было искать название категории и производителя с маленькой буквы русского языка Smiley

По поводу проверок даже не думал, просто минимально изменил код для того, чтобы функционально работал.

Кто попробует, отпишитесь.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3591


« Ответ #11 : 04.02.2015, 21:48:14 »

deleted
Посмотрел стартпост. Нифига себе, это в оригинале такой г-код?
По поводу учета регистра - используйте COLLATE. Например, для принудительного поиска без учета регистра добавьте
Код
COLLATE utf8_general_ci

или приведите сравниваемые фразы к общему регистру
Код
WHERE LOWER('bLahBlah') LIKE LOWER('BlahblAh')
. В противном случае
Код
COLLATE utf8_bin

И никакого RLIKE: либо LIKE, либо REGEXP.
« Последнее редактирование: 06.02.2015, 09:33:29 от robert » Записан
Andrey-Haker
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #12 : 05.02.2015, 19:29:19 »

Robert наша задача помочь с минимальными затратами времени и усилий для тех кто не соображает вообще не в каких кодах.А Вы написали, то что ни кто кроме нас не поймёт. Smiley
Если всё это вставить всё будет работать.А улучшать код для своей совести и якобы лучшей работоспособности, только за деньги.
Записан
robert
Профи
********

Репутация: +344/-11
Offline Offline

Пол: Мужской
Сообщений: 3591


« Ответ #13 : 05.02.2015, 21:08:02 »

Robert наша задача помочь с минимальными затратами времени и усилий для тех кто не соображает вообще не в каких кодах.
Нет, это не моя задача (см. мою подпись).
А Вы написали, то что ни кто кроме нас не поймёт. Smiley
Кроме кого нас? Думаю, вы тоже не поняли. А то, что вы написали, не имеет ничего общего с темой "регистронезависимый поиск". Так что пока можете листать литературу, рано еще жалеть других, господин хахер.
Записан
Andrey-Haker
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« Ответ #14 : 11.02.2015, 20:04:51 »

Роберт, то что я написал всё работает!
Если у Вас "эго" играет, это Ваши проблемы!
Вы хоть сами понимаете, что написали полную чушь) Smiley
И по поводу Haker -это всего лишь ник.
Записан
Gandriyko
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 14


« Ответ #15 : 17.10.2016, 17:40:59 »

Добрый день, друзья!
Как заставить этот модуль выводить в результатах поиска даже короткие запросы?
Сейчас происходит поиск только по словам, которые больше 4ёх символов.
Нужно, чтобы искало начиная с двух. (Чтобы находило короткие артикулы)

Joomla 2.5.28
Качал эту версию:
https://yadi.sk/d/GDRrhzBke2UUH
Копался в коде, но так и не дошло, что и как поменять.
Прошу помощи.
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet