Новосибирск +7(983)

По всем вопросам :

Телеграм : @radgura

VirtueMart 3 - поиск товара без учета пункта меню

Заказать доработку
Joomla 3.x

Стоимость 300


@radgura.ru
Адриена Лежена
63089
Новосибирск
Адриена Лежена
+7(983)
3067856
Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.

Статьи

Вы можете Заказать доработку 300руб. RUB
Поиск товаров в VM происходит с учетом выбранного меню, это бывает не удобно, когда пользователю нужно организовать глобальнй поиск по всему каталогу

Исправить можно в файле

administrator/components/com_virtuemart/models/pooduct.php

Примерно на ~258 строке происходит проверка на ввод поисковой фразы, нам нужно добавить флаг "был ли поиск"

$is_searsh=0;
if (!empty($this->keyword) and $this->keyword !== '' and $group === FALSE)
{
$is_searsh=1;

Далее в блоке фильтра по категории, добавляет условие нового флага - если введено поисковое слово то игнорируем категорию

if ($virtuemart_category_id > 0 and $is_searsh==0) 
{
$joinCategory = TRUE;
$categories = array();
VmModel::getModel('category')->GetTreeCatArray($categories, $virtuemart_category_id);
$where[] = ' `pc`.`virtuemart_category_id` in (\'' . implode('\',\'',$categories).'\')';
} else

Дополнительно можно отсеять товар перед выводм, например вывести только уникальные названия, в этом же методе перед выводом результата:

//убираем дубликаты по названию
if ($is_searsh==1 and count($product_ids)>0)
{
$db = JFactory::getDbo();
$db->setquery("select p.virtuemart_product_id as id,product_name as name from #__virtuemart_products p left join #__virtuemart_products_ru_ru as r on r.virtuemart_product_id=p.virtuemart_product_id where p.virtuemart_product_id in (".implode(',',$product_ids).") ");$lists=$db->loadobjectlist();
$product_ids=array();
$product_ids_name=array();
foreach($lists as $ll)
{
$is_new=1;
foreach($product_ids_name as $nn) {if ($nn==$ll->name) $is_new=0;}
if ($is_new==1)
{
$product_ids[]=$ll->id;
$product_ids_name[]=$ll->name;
}
}
}
return $product_ids;

Комментарии (0)

Здесь ещё нет оставленных комментариев.

Оставьте свой комментарий

  1. Добавление комментария от гостя.
Вложения (0 / 3)
Share Your Location

Как с нами связаться

По всем вопросам пишите  

Телеграм: @radgura

OnLine заказ

Отправить сообщение

Нажимая на кнопку «Отправить сообщение», я соглашаюсь:
* с условиями публичной оферты
* обработку моих персональных данных


RAD компоненты

Please publish modules in offcanvas position.