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

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #30 : 18.07.2010, 16:02:12 »
подскжите, как сделать возврат к результатам поиска? реально, неудобно...
Поскольку все работает на аяксе, ни один элемент формы не имеет механизма возвращения в бывшее когда-то состояние. В связи с этим выход вижу один - открывать флайпейдж товара в новой странице, можно при этом использовать какой-нибудь эффект типа грейбокс для красоты.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #31 : 18.07.2010, 19:03:36 »
Аркадий, можешь уточнить где формируется ссылка на товар?
vm_ext_search_helper.php в самом низу
Код
<a title="<?php echo $db->f("product_name")?>" href="<?php echo $product_link ?>">
                <?php echo $db->f("product_name")?>
    </a>
а уж как ее извратить, это написано в инструкции к примочке.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #32 : 20.07.2010, 08:32:04 »
Приделываем вывод товара при клике на результатах отбора в фансибокс. Это решает возврат в отбор после просмотра товара. Другого нормального способа пока нет. А может и не будет.

1. Качаем фансибокс http://fancybox.googlecode.com/files/jquery.fancybox-1.3.1.zip
2. Размещаем jquery.fancybox-1.3.1.pack.js, jquery.mousewheel-3.0.2.pack.js в папку js компонента, а jquery.fancybox-1.3.1.css в папку CSS.
3. Картинки оформления из архива фансибокса ленивые кидают в папку CSS, неленивые в папку img и правят пути к картинкам в jquery.fancybox-1.3.1.css.

4. в файле vm_ext_search.php где-то после строк
Код
$uniSearch->addJS('universal_search.js');
    $uniSearch->addCSS('style.css');
вставляем следующий код:
Код
    $uniSearch->addJS('jquery.fancybox-1.3.1.pack.js');
    $uniSearch->addJS('jquery.mousewheel-3.0.2.pack.js');
    $uniSearch->addCSS('jquery.fancybox-1.3.1.css');

$fancy = "
 <script type=\"text/javascript\">
 jQuery(document).ready(function() {
        jQuery(\".fancybox\").live('mouseover', function(){
        jQuery(\".fancybox\").fancybox(
        {
                'width'         : '95%',
                'height'        : '95%',
                'autoScale'     : false,
                'transitionIn'  : 'none',
                'transitionOut' : 'none',
                'type' : 'iframe'
        });
        })
});
</script>";
       $mainframe->addCustomHeadTag($fancy);
Если ругается на $mainframe, то выше пишем
Код
global $mainframe;

5. Ниже ищем ссылки на товары и присваиваем им класс fancybox. Т.е. любые ссылки с классом fancybox будут открываться в фансибоксе.
*

MiKelangelo

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #33 : 05.08.2010, 08:38:39 »
Такой вопрос. А почему компонент/модуль не ищет в позициях товаров (или дочерние товары, как угодно)?
Т.е. при поиске он выводит надпись, что мол найдёно столько то товаров. Количество товаров по заданным характеристикам он выводит верно, но когда жмёшь "Поиск" то показывает "Поиск не дал результатов".
Или к примеру задаешь параметры, которые соответствуют двум товарам (номер 1 и номер 2) и двум дочерним товарам номера 1. Он показывает, что найдено 4 товара. Жмёшь "Поиск" и он выводит только товар номер 1 и номер 2, без дочерних товаров номера 1.
Как поправить?
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #34 : 05.08.2010, 09:05:41 »
Дочерние товары в поиск не выводятся. Если хочешь их выводить, то в vm_ext_search_helper.php удали 107 строку
Код: php
$q .= "product_parent_id=''";
Но тогда ты столкнешься с тем, что надо будет заполнить все необходимые поля дочернего товара т.к. механизм использования родительских полей в случае пустоты дочерних отсутствует.
*

MiKelangelo

  • Осваиваюсь на форуме
  • 18
  • 0 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #35 : 06.08.2010, 02:53:32 »
Попробовал удалить (она правда не 107, а 103 строка)
Код
$q .= "product_parent_id=''";
И он перестал искать вообще. Количество показывает, но не ищет ни дочерние, ни родительские.
Куда копать? В дочернем товаре заполнил все поля, какие есть. Т.е. они не пустые. Но результат вот.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #36 : 06.08.2010, 06:00:52 »
Тогда в следующей строке убери AND в начале строки.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #37 : 17.08.2010, 16:06:30 »
Обнаружилась ошибка в построении урл ссылки на товар.
 Решение:
в файле vm_ext_search_helper.php найти строку начинающуюся с
Код
$fields .= "#__{vm}_product_price.product_currency,
заменить ее на
Код
$fields .= "#__{vm}_product_price.product_currency, #__{vm}_category.category_id, ";
найти две строки начинающихся с
Код
$url = "?page=shop.product_details&category_id=
заменить в них
Код
$cid
на
Код
".$db->f("category_id")."
с точностью до символа.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #38 : 19.08.2010, 14:03:53 »
Если картинки имеют разные размеры, то в файле vm_ext_search_helper.php в строке
Код
$img = "<img align=\"left\" src=\"" . $product_thumb_image . "\" ".$t_width." ".$t_height." />" ;
просто удалить
Код
".$t_width." ".$t_height." 
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #39 : 20.08.2010, 05:59:37 »
Возможно ли исключить из выпадающего списка категорий все подкатегории второго и глубже уровней, оставив только главные.
Ну и вытереть минус, и число в скобочках.
Можно, поработав с функцией list_tree
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #40 : 24.08.2010, 12:55:35 »


Как я понял мои вопросы попали в игнор ?
- Как можно вывести в main_search над всеми result 1 заголовок таблицы (png)?
- Как выводить в result заглушки типа $product_weight ?
- можно чтобы при "Стандартная ссылка на товар" в поисковой выдаче сохранялась посковая выдача при возврате ? Подойдет любое решение с сохранением выдачи при возврате только без fancybox. Может быть это "Аякс-ссылка на товар", но у меня такая ссылка не работает.
1. vm_ext_search_helper.php можно в самой первой строке подвинуть <?php и перед ним написать свой <img srch="">
2. их сначала надо сформировать, т.е. добавить поля БД в запрос в том-же файле vm_ext_search_helper.php, потом в цикле вывода использовать.
3. Другого варианта нет, только фансибокс или аякс-ссылка. Как не работает "Аякс-ссылка на товар"?
« Последнее редактирование: 28.01.2013, 12:27:51 от ELLE »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #41 : 25.08.2010, 06:23:55 »
2Arkadiy
Здравствуйте
Реализовано ли управление выводом результатов (интересно можно ли вывести вместо имени товара параметры типа )
Спасибо

Характеристики выводятся опционально, кодом
Код
<div class="product_type_result">
                        <?php echo$ps_product_type->list_product_type($db->f("product_id")); ?>
                    </div>
ставь куда хочешь.
*

Ksen-nn

  • Новичок
  • 7
  • 0 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #42 : 26.08.2010, 15:16:40 »
Несколько вопросов...
1) Почему в предыдущей версии компонента, сразу присутствовал выбор и производителя и типа товара... А сейчас толкько после выбора производителя открывается тип...

Ну например, есть телевизоры и телефоны... почему только после выбора, например, LG - выводится выбор телефона или телевизора? раньше можно было выбрать - телефон и выпадают параметры для телефонов... а производителя выбрать уже после

Хм я не знаю что вы сделали у меня ПРО версия купил недавно всё Гуд работает без выбора производителя.

Мой Рассказ о том как настраивать VM модуль (писал для магазина матрасов):
Спойлер
[свернуть]
« Последнее редактирование: 28.01.2013, 12:24:26 от ELLE »
*

Wharfadale

  • Захожу иногда
  • 194
  • 24 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #43 : 27.08.2010, 12:48:41 »
Ребят, у кого не работает AJAX, сделайте вот это:
Цитировать
vm_ext_search_helper.php
в самом низу найти две строки
if ($task == 'ajax_mod')$prefix = 'mod_';
else $prefix = '';
Перенести их выше строки
//подготавливаем ссылку на товар из результатов поиска

$product_link = "onclick=\" var link ='".$product_link."';  product( link )";

заменить

$product_link = "onclick=\" var link ='".$product_link."';  ".$prefix."product( link )";
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #44 : 28.08.2010, 21:23:57 »
Wharfadale
Подскажите по стилям:
1) как сделать чтобы выбор типов был ДО выбора производителя
2) можно ли раскидать по странице выпадающие списки для поиска? ну т.е. один параметр справа, другой слева... и т.д.
1. никак т.к. логика поиска строится по принципу: сначала категории, потом производители, имеющие товары, соответствующие категории, потом уже характеристики товаров, соответствующие предыдущим параметрам. Можно сделать и по-другому, но это будет уже другой компонент. Если просто переставить местами, то пользователь просто заблудится.
2. Конструктив Joomla не позволяет размазывать модули/компоненты по странице.
*

sashasaturn

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #45 : 28.08.2010, 22:44:19 »
2Arkadiy
Характеристики выводятся опционально, кодом
Код
<div class="product_type_result">
                        <?php echo$ps_product_type->list_product_type($db->f("product_id")); ?>
                    </div>
ставь куда хочешь.
Работает только в версии про?
В бесплатной версии выдает вот такое сообщение
Detecting error(s)

Fatal error: Call to a member function list_product_type() on a non-object in /home/domains/s/public_html/components/com_vm_ext_search_free/files/vm_ext_search_helper.php on line 274
« Последнее редактирование: 28.08.2010, 23:04:31 от sashasaturn »
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #46 : 29.08.2010, 06:57:45 »
Дополнительно надо после строки
Код
require_once( JPATH_BASE . DS . 'components' . DS . 'com_virtuemart' . DS . 'virtuemart_parser.php' );

вставить
Код
require_once( CLASSPATH . 'ps_product.php');
$ps_product = new ps_product;
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #47 : 30.08.2010, 17:05:04 »
Arkadiy, спасибо, буду пробовать.
И еще))):
Как сделать, чтобы по умолчанию была активна только одна (допустим первая) категория?
Есть ли возможность, скрывать чекбоксы параметров, а показывать только при нажатии на название типа (как в ямаркете)?
\components\com_vm_ext_search_pro\files\search_form.php Функция
Код
$uniSearch->list_category($cid, "catid[]", $conf);
первым аргументом принимает текущую категорию, которая будет выбрана в селекте при загрузке. $cid подготавливается в \components\com_vm_ext_search_pro\vm_ext_search_pro.php. Копаться надо в строках
Код
$cid = vmGet($_REQUEST, 'catid', array());
$category_id = vmGet($_REQUEST, 'category_id', '');
if (empty($cid[0]) && !empty($category_id) && $conf['show_category'] == 1)
        $cid[0] = $category_id;
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #48 : 31.08.2010, 12:37:56 »
возникло несколько вопросов:
2. в "Подходящих товаров:" выводит количество всех товаров. и опубликованных и нет.

убираем из подсчета неопубликованные товары:

ищем в файле unisearch.php строчку
Код
//запрашиваем иды товаров, соответствующие выбранным категориям, производителям из таблицы текущего типа
и заменяем все до строчки
Код
$product_ids = $db->loadResultArray();
включительно

этим

Код
//запрашиваем иды товаров, соответствующие выбранным категориям, производителям из таблицы текущего типа
            $query = "SELECT distinct product_type.product_id FROM ";
            if (!empty($cids))
                $query .= "\n #__{vm}_product_category_xref AS product_category_xref, ";
            if ($mf)
                $query .= "\n #__{vm}_product_mf_xref AS product_mf_xref, ";
            $query .= "\n #__{vm}_product AS product, ";
            $query .= "\n `#__{vm}_product_type_" . $product_type_id[0] . "` AS product_type ";
            $query .= "\n WHERE  product.product_id = product_type.product_id AND product.product_publish = 'Y' ";
            if (!empty($cids)) {
                $query .= "\n AND  product_category_xref.category_id IN (" . $cids . ")  ";
                $query .= "\n AND product_type.product_id = product_category_xref.product_id ";
            }
            if ($mf)
                $query .= "\n AND product_mf_xref.manufacturer_id IN (" . implode(", ", $mf_id). ") AND product_mf_xref.product_id = product_type.product_id ";
            if ($mf && !empty($cids))
                $query .= "\n AND product_category_xref.product_id = product_mf_xref.product_id ";

            $db->setQuery($query);
            $product_ids = $db->loadResultArray();
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #49 : 31.08.2010, 18:55:10 »
Обнаружил ошибку в конвертации валюты магазина. Почему-то куда-то вылетела одна очень важная строчка. В файле \components\com_vm_ext_search_pro\vm_ext_search_pro.php непосредственно перед строкой
Код
if ($valuta != $GLOBALS['product_currency']) {
надо вставить строку
Код
$valuta = $conf['adm_valuta'];
Но это не освобождает от необходимости устанавливать трехбуквенный код валюты, в которой хранится товар в административной части магазина в настройках компонента. Если у вас две или больше валюты у товаров, то вам это не поможет. Можно смело отключать отбор по цене.
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #50 : 02.09.2010, 11:34:05 »
а как быть с фильтром по ценам? предположим юзер не хочет выбирать никаких чекбоксов а просто посмотреть что он может купить до 1500 рублей - вводит ограничение и ничего не происходит... допустим в контакте это реализовано так: когда курсор с текстбокса пропадает происходит выдача  результата. Есть какие нибудь мысли по этому поводу?
http://webinteractions.ru/ru/howto Читать "Динамический поиск по цене"
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #51 : 08.09.2010, 08:06:20 »
Для отключения перезагрузки страницы по нажатию на энтер попробуйте в default.php модуля и search_form.php компонента в теге
Код
<form action="index.php" method="get" name="com_vm_search_form" ...>
добавить
Код
onSubmit="return false;"
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #52 : 10.09.2010, 06:05:09 »
Вопрос №1 (наверняка глупый): По умолчанию, все категории товара отмечены галочками, а возможно ли сделать, что ни одна категория не была отмечена? Спасибо!
В файле unisearch.php функция list_category, case 'checkbox' : в цикле foreach ($categories as $item) убрать checked="checked"
*

Garry

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #53 : 12.09.2010, 04:10:29 »
Скажите пожалуйста, если в компоненте выбран параметр "Стандартная ссылка на товар " , то как сделать чтобы товар открывался в новом окне
*

Wharfadale

  • Захожу иногда
  • 194
  • 24 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #54 : 12.09.2010, 07:40:19 »
В result.php меняем это
Цитировать
<a title="<?php echo $db->f("product_name"). '" ' . $product_link; ?>" >
            <?php print $img; ?>
        </a>

на это

Цитировать
<a target="_blank" title="<?php echo $db->f("product_name"). '" ' . $product_link; ?>" >
            <?php print $img; ?>
        </a>
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #55 : 14.09.2010, 02:43:01 »
вот здесь вот http://webinteractions.ru/ru/demo на "наличии USB" работает ли "двойной движок диапазон" со значением параметра "целый"?

 upd: вижу, не работает , а именно при появлении формы можно выбрать "нет,1,2,3,4,5, есть" допустим выбрали 2 , появились результаты и теперь повторно можно выбрать только "нет" или "2", а куда делись "3,4,5,есть" ?
в файле unisearch.php найти строки
Код
//запрашиваем вид вывода характеристик из конфигурации
$vid = $conf[$parameter_name[$j] . '_' . $product_type_id[0]];
и заменить на
Код
//запрашиваем вид вывода характеристик из конфигурации
$vid = $conf['view_param_'.$product_type_id[0] . '_' . $parameter_name[$j]];
*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #56 : 14.09.2010, 02:46:26 »
А что по этому вопросу:
А как сделать так, чтобы модуль отображал форму поиска, если юзер находится в пустой категории без товара?
А то если он заходит в пустую категорию, то из модуля исчезает форма поиска, остаётся только кнопка "Поиск".
Надо в файле vm_ext_search.php удалить строки связанные с выводом из реквеста категории ($catid и $category_id).
*

Garry

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #57 : 14.09.2010, 03:51:36 »
в файле unisearch.php найти строки
Код
//запрашиваем вид вывода характеристик из конфигурации
$vid = $conf[$parameter_name[$j] . '_' . $product_type_id[0]];
и заменить на
Код
//запрашиваем вид вывода характеристик из конфигурации
$vid = $conf['view_param_'.$product_type_id[0] . '_' . $parameter_name[$j]];

docs/components/com_vm_ext_search_pro/files/unisearch.php строка 512?

данная замена приводит к тому что параметры в форме поиска на сайте отображаются исключительно в форме "Выпадающий список" и перестают реагировать на настройки "компоненты/VM TYPE SEEARH PRO", диапазон не выводится


*

Arkadiy

  • Гуру
  • 5317
  • 463 / 2
  • Крепитесь, други.
Re: Фильтр для VirtueMart (must have)
« Ответ #58 : 14.09.2010, 07:47:20 »
Да, правильно, в таком случае придется немного подождать свежего релиза, слишком много переделал.
*

Garry

  • Осваиваюсь на форуме
  • 27
  • 1 / 0
Re: Фильтр для VirtueMart (must have)
« Ответ #59 : 16.09.2010, 23:43:30 »
Сам поиск работает с моей точки зрения изумительно, когда в отображениях параметров используются чекбоксы или радиокнопки, а вот использование дипазонов ( даже одного ) оказалось в моем случае не  практично. Это связанно с тем , что идея AJAX поиска с динамическим выводом результатов построена на том, чтобы при добавлении (или удалении) значения параметра мы видим как меняется выборка товаров (result) - это наглядно и эффектно по отношению к другим технологиям. Пользователь заметив такую возможность в большинстве случаев начинает добавлять или удалять значения параметров чтобы посмотреть разные выборки ( сравнить цены, характеристики товара по производителям, посмотреть ассортимент и т.д.). Всё это хорошо с чекбоксами , но когда выбран " диапазон" то   диапазон значений показанных на нём меняется в соответствии с отмеченными с помощью чекбоксов другими параметрами,это собственно очень хорошо,  но вот когда мы хотим поменять эти значения ( переставить галочку в чекбоксе ), то значения диапазона остаются прежними ( на практике очень узкими, так как мы довольно точно указали эти рамки с помощью других параметров) и каждый раз после выбора значения параметра чекбоксом возникает необходимость регулировать параметр "диапазон", что в свою очередь влияет на параметры выбранные чекбоксами и т.д. =) Хорошо бы  , если параметры для которых выбран "диапазон" "отвязать" от остальной группы параметров при повторных выборах или вообще "отвязать" А то диапазон у нас допустим находится в самом низу, до него еще и очередь не дошла а он уже таким образом влияет на всю нашу выборку слишком активно  и из за за него не показываются результаты которые должны показываться.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Поиск по настраиваемым полям (фильтр VirtueMart 2): плагин поля мультивыбора + модуль

Автор pharaoh

Ответов: 724
Просмотров: 64719
Последний ответ 28.06.2022, 09:07:29
от snikolai
Плагин оплаты картами Visa/MasterCard VirtueMart 2.x-3.x Цена 5.00 $

Автор gartes

Ответов: 33
Просмотров: 9005
Последний ответ 07.11.2021, 23:30:32
от a-li
[Импорт/экспорт] Excel2VM - для VirtueMart 2-3. Excel и Яндекс.Маркет. (xls, XLSX, CSV, xml)

Автор katrey

Ответов: 109
Просмотров: 24012
Последний ответ 09.06.2021, 07:58:15
от asteroidx
Плагин отправки SMS при заказе в VirtueMart 2

Автор Arkantos

Ответов: 19
Просмотров: 3922
Последний ответ 22.03.2021, 17:25:23
от nnnata
Загрузка файлов в корзине VirtueMart 3

Автор Kodopik

Ответов: 0
Просмотров: 1367
Последний ответ 25.02.2021, 13:56:20
от Kodopik