Новости Joomla

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

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Представляю вашему вниманию новый расширенный поиск по характеристикам товара.
Гинеологическое древо:
Дед - Компонент и модуль поиска товаров VirtueMart 1.0.15 на Ajax
Отец - Фильтр, или расширенный поиск по характеристикам товара

Новый компонент был полностью переработан и лишен большинства (а может быть и всех) недостатков своих прародителей, взяв от них самое лучшее.
Это аналог платного модуля Фильтр для VirtueMart (must have) с урезанным функционалом. Урезан он в части выбора способа вывода параметров. В отличие от платного компонента здесь все параметры выводятся селектами (выпадающими списками).

Состоит расширенный поиск из модуля и компонента. Компонент может работать самостоятельно, без модуля. Модуль без компонента работать не может.

Вывод результатов поиска происходит с помощью AJAX, без перезагрузки страницы. По этому есть небольшой нюанс в установке модуля (для компонента не нужно).

Некоторые инструкции по установке модуля:
1. Как обычно устанавливаем и настраиваем модуль.
2. Модуль использует AJAX подгрузку результатов поиска. Для того, чтобы в любом месте сайта это было возможно необходимо в index.php шаблона Joomla вставить определенный див.

Для работы модуля необходимо обрамить вывод компонента
Код
<jdoc:include type="component" />
в index.php используемого шаблона дивом. в итоге должно получиться так:
Код
<div id="main_search">
         <jdoc:include type="component" />
</div>
Тогда этот див будет присутствовать на любой странице, а результаты поиска будут заменять выводимое содержимое.

Исправление ошибки работы отбора по типам если не выбирать категории или производителей:
все, нашла в чем было дело!
в файле modules\mod_vm_universal_search\mod_vm_universal_search.php
у меня 68 строка, там где выводятся параметры типа
Код
    <div id="mod_harakt_div" >
            <?php
            if (count($types) == 1) {
                $typ = array();
                $typ[] = $types[0]->product_type_id;
                $uniSearch->get_harakt($typ, $cid, $mf_id, $conf);
            }
            ?>
    </div>

в параметры функции get_harakt надо добавить префикс 'mod_':

 
Код
   <div id="mod_harakt_div" >
            <?php
            if (count($types) == 1) {
                $typ = array();
                $typ[] = $types[0]->product_type_id;
                $uniSearch->get_harakt($typ, $cid, $mf_id, $conf,'mod_');
            }
            ?>
    </div>

[вложение удалено Администратором]
« Последнее редактирование: 12.09.2011, 13:43:45 от Arkadiy »
*

Maks

  • Новичок
  • 2
  • 0 / 0
Доброе утро. Аркадий поставил ваш модуль. Но почему то не работает кнопка "поиск". При её нажатии ничего не изменяяется и я не перехожу на найденный товар.
*

xTMx

  • Захожу иногда
  • 145
  • 4 / 0
а вы в коде шаблона заключили вывод компонента в див нужного класса как сказано в инструкции? )
*

Maks

  • Новичок
  • 2
  • 0 / 0
xTMx спасибо. Действительно прочитал и забыл что это нужно сделать. Всё заработало.
*

dyominroma

  • Захожу иногда
  • 124
  • 6 / 0
У меня фильтр по цене не работает! Точнее работает, но не корректно! У меня конвертация валюты! Товар в долларах, отображает в грн! Насколько я понял он ищет в долларах! Можно поправить! У вот ещё одно: почему не сделать некое наследование вида категории товара вместо своих стилей? Browse текущий подключить или как-то так)
Сайт http://e-trade.kr.ua/!
« Последнее редактирование: 04.06.2010, 18:52:34 от dyominroma »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
1. фильтрация по цене корректно работает только без конвертации валюты.
2. такого нет, но можно поправить! (ручками) :)
*

dyominroma

  • Захожу иногда
  • 124
  • 6 / 0
Не ищет товары без цены >:(! Можно сортировку по цене сделать?
« Последнее редактирование: 05.06.2010, 19:19:40 от dyominroma »

У меня другая проблема, я поставил все, сделал как надо. Только почему то в списке нет ни одного производителя, хотя в магазине их больше десятка. в чем может быть причина, подскажите пожалуйста? Спасибо.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
И никак нельзя помочь этому делу? Мне только и нужна такая сортировка)))
Если в админке все товары введены в одной валюте (в примере в долларах) то можно сделать так:
vm_ext_search_helper.php после строк
Код
$pf = vmGet($_REQUEST, 'pf', 0);
$pt = vmGet($_REQUEST, 'pt', 0);
вставить
Код
$pf = $GLOBALS['CURRENCY']->convert( $pf, 'UAH' ,'USD' );
$pt = $GLOBALS['CURRENCY']->convert( $pt, 'UAH' ,'USD' );
Если в админке использованы несколько валют, то так не получится.
Не ищет товары без цены >:(! Можно сортировку по цене сделать?
И не будет искать, так сделано.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
У меня такая непростая задача… Мне нужно чтобы поиск по характеристикам находил товары из свойств товара, а не сам главный товар. Смысл поиска по характеристикам пропадает, так как в свойство можно добавить все отдельно, как и к главному товару (Тип товара и даже id отдельный), а поиск его не выводит.


Тема такая, Фирма гранитных моек Schock - 20 вариантов цветов, много моделей. Мне нужно чтобы покупатель мог выбрать, допустим, Мойка с крылом цвет: Colorado и чтобы ему поиск выдал все мойки с крылом данного цвета.  Получается, что в стандартном поиске для реализации подобной вещи нужно для каждого цвета делать отдельный товар. Представьте, что получится если каждую модель вбивать в 20 вариантах цветов….

Ваш поиск на это способен?
Компонент ищет по свойствам типов и никак иначе. Можно товару создать свойство с мультивыбором, тогда будет искать.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Не пойму... Какое имеют отношение цены к подборке продуктов по параметрам?
У меня, например, магазин работает как каталог, цен нет вообще. Как быть в такой ситуации? Писать другой компонент?
Так посторен запрос. Поставь цены = 0 или другой цифре, убери цены из шаблонов чтобы не маячили.
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
тоже мучает проблема, точнее две :
1. как убрать номера перед категориями чтобы их не было и сделать шрифт крупнее в названии
2. как сделать чтобы выводились только Родительские категории и не было подкатегорий?
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

stalkervp

  • Осваиваюсь на форуме
  • 44
  • 3 / 0
1. убрать номера можно в файле \components\com_vm_ext_search_free\files\unisearch.php
line 45-49:
            for ($i = 0;$i < $level;$i++) {
                echo "–";
            }
            echo "|$level|";
            echo "&nbsp;" . $db->f("category_name"). "</option>";

заменить на (для примера):
   $i=0;
            for ($i;$i < $level;$i++)
            {
                echo "&nbsp;";
            }
   if ($i != 1) $wt = "&nbsp;&nbsp;";
   $wt.= $db->f("category_name");
   $wt.= "</option>";
   echo $wt;
« Последнее редактирование: 24.06.2010, 17:28:14 от stalkervp »
*

stalkervp

  • Осваиваюсь на форуме
  • 44
  • 3 / 0
Ув. Аркадий могли бы вы пояснить один момент. Ситуация такая, сайт грузится с уже открытой категорией VirtueMart, типов товара только 1, 3и параметра у типа, в настройках модуля оставляю только -Разрешить подбор по типам товаров, и при выборе одного из типов (т.к. ничего другого выбирать не нужно, категория по умолчанию) получаю ошибку Object expected в ИЕ8, в ФФ ошибки нет но ничего не происходит. Если включить выбор категории, и там щелкнуть на другую потом вернуться на нужную, то все пашет ... можно посмотреть на http://newtaxi.podnimem.com   .Не могу понять, чего не хватает для срабатывания фильтра ...
*

orexov_m

  • Захожу иногда
  • 297
  • 24 / 0
1. убрать номера можно в файле \components\com_vm_ext_search_free\files\unisearch.php
line 45-49:
            for ($i = 0;$i < $level;$i++) {
                echo "–";
            }
            echo "|$level|";
            echo "&nbsp;" . $db->f("category_name"). "</option>";

заменить на (для примера):
   $i=0;
            for ($i;$i < $level;$i++)
            {
                echo "&nbsp;";
            }
   if ($i != 1) $wt = "&nbsp;&nbsp;";
   $wt.= $db->f("category_name");
   $wt.= "</option>";
   echo $wt;

всё классно номера исчезли только он все родительские категории заменил на 1 которая самая первая идет, как это поправить?
ну и как сделать возможность показа подкатегорий и их убирание


с вопргосом по дублированию решил кому надо код должен быть такой :
 
for ($i=0;$i < $level;$i++)
            {
                echo "&nbsp;";
            }
   if ($i != 0) $wt = "&nbsp;&nbsp;";
   $wt.= $db->f("category_name");
   $wt.= "</option>";
   echo $wt;         

но вопрос по тому как убрать подкатегории остался :)
« Последнее редактирование: 25.06.2010, 09:26:04 от orexov_m »
Skype:orekhov.mikhail, ICQ: 580077720, Телега
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
но вопрос по тому как убрать подкатегории остался :)
Надо убрать рекурсию т.е. вхождение функции в саму себя в этой функции. Например строка
Цитировать
$this->list_tree($category_id, $child_id, $level, $selected_categories);
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Можно сделать сортировку результатов по цене?
Можно.
Код
$q .= "ORDER BY #__{vm}_product.product_id DESC ";
Заменить на нужное
*

dyominroma

  • Захожу иногда
  • 124
  • 6 / 0
final_price вместо #__{vm}_product.product_id
Чтоб мне... А я пихал $final_price и нервничал))) Спасибо большое, за такую работу)
*

aleksviper

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Видимо редко кто делает товар принадлежащий сразу дочерней и родительской категории. В таком случае надо переделывать запрос формирующий $total. Для всех не хочется это делать т.к. это увеличит нагрузку на сервер.

Извините, но считаю немного не логичным Ваше рассуждение по поводу родительской и дочерней категории,
как бы вы поступили если есть такая необходимость включить товар и в категорию "кондиционеров" и в подкатигорию "настенные", если юзер нажмет на кондиционеры и там будет пусто это вообще будет лишено логики?? особенно если он не сильно разбирается в специфике товара.

Вопрос стоит ребром: решена ли эта проблема в платной версии? потому как платить деньги есть желание за продуманную программу

З.Ы. Спасибо за решение с номерами категорий.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Извините, но считаю немного не логичным Ваше рассуждение по поводу родительской и дочерней категории,
Если-бы оно было не логичным, то кроме тебя еще человек 150 задали бы вопрос про неправильную паджинацию, однако нет. Значит у всех что-то по-другому и такой случай категоризирования товара встретился впервые.

Ну да ладно, фигня все это. Решение:
vm_ext_search_helper.php строка ~ 95 вставляем DISTINCT и получаем
Код
$q = "SELECT DISTINCT #__{vm}_product.product_id, #__{vm}_product.product_parent_id, ...
после этого двоение пропадает.
*

aleksviper

  • Осваиваюсь на форуме
  • 14
  • 0 / 0

vm_ext_search_helper.php строка ~ 95 вставляем DISTINCT и получаем
Код
$q = "SELECT DISTINCT #__{vm}_product.product_id, #__{vm}_product.product_parent_id, ...
после этого двоение пропадает.

Благодарю, помогло :)
*

skyscraper

  • Захожу иногда
  • 252
  • 47 / 2
подскажите где сделать запрос производителя и вывод его названия?..
пробовал запрос mf_name рядом с product_name и не получилось...

и можно как-нибудь оставлять форму заполненной после входа в карточку товара?

ps: спасибо за модуль, очень нравится AJAX =)
« Последнее редактирование: 29.06.2010, 23:34:08 от skyscraper »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Производителя надо запрашивать по полной программе, исходя из ида товара. Можно поискать соотв. функцию в классах ВМ либо написать свой запрос. Оставить форму заполненной после входа в карточку товара нельзя т.к. реквест живет только до следующей страницы.
*

twoloop

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Уважаемый Arkadiy!

Спасибо за отличный поиск. Всё летает! Читаю эту и соседние ветки и успешно настраиваю под себя.

Один вопрос меня мучает и не могу я на него найти ответ: как добиться того, чтоб результаты поиска выводились таблицей (к примеру, из 2-х полей: имя товара (ссылка на fly-page) и цена)?

Возможно, этот вопрос - не в эту тему, в таком случае прошу послать, куда следует ^-^
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Для этого надо переделать вывод товаров в vm_ext_search_helper.php
до строки 160
Код
while ($db->next_record()) {
начать таблицу, в теле цикла переделать все под вывод строк таблицы (1 проход цикла - 1 строка), после окончания цикла закончить таблицу
*

geralt

  • Новичок
  • 7
  • 1 / 0
Поставил компонент. Почемуто сразу не выводит первую характеристику из списка характеристик типа товара.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Возможно в ней нет допустимых значений.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
1. а если в правильном порядке выбрать то-же самое третье поле видно?
2. Мультиязычность будет только в версии ПРО компонента.
*

Igorello

  • Осваиваюсь на форуме
  • 15
  • 1 / 0
Да, видно. В таком случае в остальных полях просто-напросто отображаются те параметры, которые доступны для выбранного значения в первом поле.

В общем, проще показать, чем долго рассказывать...

http://gravicappa.kiev.ua/stabilizatory-napryazheniya.html

Когда выбираем во втором поле мощность "10000 и выше", а потом в первом — производителя "Luxeon", тогда и вылазят глюки.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

VirtueMart - SMS уведомления о сделаном заказе.

Автор bork

Ответов: 42
Просмотров: 21889
Последний ответ 26.07.2021, 22:11:25
от Oleg91
Отчеты и статистика для VirtueMart

Автор 4kict

Ответов: 25
Просмотров: 9897
Последний ответ 14.01.2021, 00:09:53
от gartes
IceVmCart - новый бесплатный модуль корзины для VirtueMart

Автор Grig2009

Ответов: 105
Просмотров: 51768
Последний ответ 05.02.2017, 11:44:02
от Super_Panda
Модуль недавно просмотренные товары для VirtueMart 1.1.X

Автор aleks_yug

Ответов: 97
Просмотров: 25037
Последний ответ 25.10.2016, 15:03:07
от Igoritaly
Поиск для магазина автозапчастей как на Exist.ru!

Автор zzaj

Ответов: 21
Просмотров: 8465
Последний ответ 11.05.2016, 13:50:02
от Pahom72