LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
28.05.2012, 02:42:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 20   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Фильтр, или расширенный поиск по характеристикам товара  (Прочитано 97730 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« : 27.06.2009, 18:26:44 »

Почти сделал фильтр, или расширенный поиск по характеристикам товара:
  • Создал в VirtueMart 1.1.3 тип товара с характеристиками (в моем случае product_type_id = 3)
  • В shop.browse.php добавил для отображения формы поиска по конкретному типу товара:
Код:
$product_type_id = 3;
include(PAGEPATH. 'shop.parameter_search_form.php');
  • Далее хочу что бы эта форма отображалась только на странице определенной категории товара (в моем случае 50), для этого предедущий код меняю на:
Код:
if ( $category_id == "50" ){
$product_type_id = 3;
include(PAGEPATH. 'shop.parameter_search_form.php');
}
else {
}
  • Получаю:
  • Заполняю форму поиска, осуществляется корректно поиск +видно какие я параметры выбрал для поиска:
  • НО, ОСТАЛАСЬ ГЛАВНАЯ ПРОБЛЕМА:
    Результат поиска уходит из категории товара в корень сайта.
    Как сделать что бы результат отображался в той же категории товара и соответственно сохранялось наше место расположение в товаре (pathway)(Breadcrumb)?


Прямая ссылка на сообщение с Компонентом и модулем поиска
« Последнее редактирование: 29.11.2009, 13:45:05 от beagler » Записан
 
beliyadm
Профи
********

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

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


Севастополь==Россия


« Ответ #1 : 27.06.2009, 18:32:56 »

в форме поиска передавать не только правильную ссылку, но и текущий ItemID, идентификатор пункта меню, тогда pathway будет корректный
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #2 : 27.06.2009, 18:37:36 »

в форме поиска передавать не только правильную ссылку, но и текущий ItemID, идентификатор пункта меню, тогда pathway будет корректный
где-то вот здесь нужно вставить?
Код:
<form action="<?php echo URL ?>index.php" method="post" name="attr_search">
<input type="hidden" name="option" value="com_VirtueMart" />
<input type="hidden" name="page" value="shop.browse" />
<input type="hidden" name="product_type_id" value="<?php echo $product_type_id ?>" />
<input type="hidden" name="Itemid" value="<?php echo $sess->getShopItemid() ?>" />
Как указать "не только правильную ссылку, но и текущий ItemID"? Huh
Записан
beliyadm
Профи
********

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

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


Севастополь==Россия


« Ответ #3 : 27.06.2009, 18:42:32 »

Как указать "не только правильную ссылку, но и текущий ItemID"? Huh
Если версия движка 1.0, то достаточно
Код
global $Itemid;
Если 1.5, то
Код
$Itemid = JRequest::getInt( 'Itemid', 1, 'get' );
И дальше в hidden поле подставляй (либо передавай в action формы)
что такое $sess->getShopItemid() я если честно не знаю, видимо у магазина какие то свои параметры в сессии (виртом не увлекаюсь, потому не в курсе)
И какой то странный для меня акшн в форме, не очень понимаю, может спецы по virtuemart подскажут
Код:
<?php echo URL ?>index.php
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #4 : 27.06.2009, 18:48:13 »

плиз, поподробнее, что-то не выходит Sad
Записан
morph
Живу я здесь
******

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

Сообщений: 957


« Ответ #5 : 28.06.2009, 06:04:58 »

смотри,у тебя:
Цитировать
<form action="<?php echo URL ?>index.php" method="post" name="attr_search">
тоесть у тебя на главную ссылка и идет.
тогда надо так:
Код:
$category_id = vmRequest::getInt( 'category_id' );
global  $mm_action_url, $sess,$vmInputFilter;
<form action="<?php $sess->purl( $mm_action_url."index.php?[color=red]page=shop.browse&category=$category_id[/color]" ) ?>" method="post" name="attr_search">
тогда укажеш форме чтобы открывалась страница списка товаров в нужной категории.
$Itemid там и так воткнеться
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #6 : 28.06.2009, 15:05:46 »

Спасибо, получилось, НО если писать
Код:
<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop.browse&category=$category_id" ) ?>" method="post" name="attr_search">
то попадаю не в корень сайта а в корень магазина
(index.php?option=com_VirtueMart&category=50&page=shop.browse&Itemid=79)
Изменил на
Код:
<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop.browse&category_id=$category_id" ) ?>" method="post" name="attr_search">
И теперь попадаю куда необходимо в :
(index.php?option=com_VirtueMart&category_id=50&page=shop.browse&Itemid=79)
Записан
soldat
Осваиваюсь на форуме
***

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

Сообщений: 83


« Ответ #7 : 03.07.2009, 08:26:43 »

kryvenko
подскажи, а как ты сделал возможность выбора (например производителя)?
Спасибо
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #8 : 03.07.2009, 13:28:47 »

kryvenko
подскажи, а как ты сделал возможность выбора (например производителя)?
Спасибо
Создал в тип товара с характеристиками (одна из которых - производитель).
Далее в настройках товара добавил, прикрепил этот тип товара.
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #9 : 03.07.2009, 13:31:45 »

Народ, подскажите как редактировать шаблон расширенного поиска?
Подскажите, куда нужно копировать "страница отображения типа товара"?


Кто-то может подсказать, показать шаблончик для таких страниц?
в /administrator/components/com_VirtueMart/html/shop.parameter_search_form.php
нашел следующее:
Код:
/********************************************************
** BrowsePage - You can use your tepmlate for searching:
** 1) write file with html table (without tags <table> and </table>) and
**    take its name into variable browsepage in Product Type
** 2) You can use this page from tag <!-- Default list of parameters - BEGIN --> to
**    tag <!-- Default list of parameters - END --> and changed it.
** 3) tag {product_type_<product_type_id>_<parameter_name>} will be replaced input field, or select field
**    tag {product_type_<product_type_id>_<parameter_name>_comp} will be replaced comparison
**        for this parameter. It is important for correct SQL question.
**    tag {product_type_<product_type_id>_<parameter_name>_value} will be replaced value for this
**        parameter (when you click on button "Change Parametes" in Browse page).
********************************************************/

Пробую использовать эти теги, но без результата Huh
Записан
soldat
Осваиваюсь на форуме
***

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

Сообщений: 83


« Ответ #10 : 06.07.2009, 02:27:33 »

Создал в тип товара с характеристиками (одна из которых - производитель).
Далее в настройках товара добавил, прикрепил этот тип товара.

Спасибо, разобрался, а можно как то сделать, чтобы производители автоматически добавлялись, а не свисывать в ручную?
« Последнее редактирование: 06.07.2009, 03:12:00 от soldat » Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #11 : 06.07.2009, 03:12:03 »

После того как создал тип товара с характеристиками (например "Наименование" ... , в твоем случае), необходимо вернуться в конкретный товар и в его настройках добавить ему тип товара, созданый недавно.
Далее смотришь в расширенный поиск по характеристикам (можно этот пункт вывести в VirtueMartовском модуле) или по ссылке:
index.php?option=com_VirtueMart&page=shop.parameter_search


* type.png (53.14 Кб, 925x437 - просмотрено 743 раз.)

* type2.png (3.77 Кб, 258x134 - просмотрено 625 раз.)
Записан
soldat
Осваиваюсь на форуме
***

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

Сообщений: 83


« Ответ #12 : 06.07.2009, 06:52:52 »

kryvenko
спасибо, да не видел, что создается отдельная вкладка.

А производителей придется в ручную вписывать (делать список)?
Как то можно убрать поиск по цене? И когда ищешь по тексту не нравится вкладка (чтобы присутствовал/отсутствовал), убирается как-нибудь?
« Последнее редактирование: 06.07.2009, 06:56:01 от soldat » Записан
morph
Живу я здесь
******

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

Сообщений: 957


« Ответ #13 : 06.07.2009, 09:47:12 »

все только ручками
Цитировать
Как то можно убрать поиск по цене?
Цитировать
administrator\components\com_VirtueMart\html\shop.parameter_search_form.php
убить
Код:
// Add search according to price:
$item_name = "price";
$get_item_value = vmGet($_REQUEST, $item_name, "");
$get_item_value_comp = vmGet($_REQUEST, $item_name."_comp", "");

echo "<tr>\n  <td width=\"35%\" height=\"2\" valign=\"top\"><div align=\"right\"><strong>";
echo $VM_LANG->_('PHPSHOP_CART_PRICE')."&nbsp;:</strong></div>\n  </td>\n";
// comparison
echo "<td width=\"10%\" height=\"2\" valign=\"top\" align=\"center\">\n";
echo "<select class=\"inputbox\" name=\"price_comp\">";
echo "<option value=\"lt\"".(($get_item_value_comp=="lt")?" selected":"").">&lt;</option>\n";
echo "<option value=\"le\"".((empty($get_item_value_comp)||$get_item_value_comp=="le")?" selected":"").">&lt;=</option>\n";
echo "<option value=\"eq\"".(($get_item_value_comp=="eq")?" selected":"").">=</option>\n";
echo "<option value=\"ge\"".(($get_item_value_comp=="ge")?" selected":"").">&gt;=</option>\n";
echo "<option value=\"gt\"".(($get_item_value_comp=="gt")?" selected":"").">&gt;</option>\n";
echo "<option value=\"ne\"".(($get_item_value_comp=="ne")?" selected":"").">&lt;&gt;</option>\n";
echo "</select></td>";
// input text
echo "\n<td> <input type=\"text\" class=\"inputbox\"  name=\"price\" value=\"$get_item_value\" size=\"20\" /></td>\n</tr>";

// Search Button
Цитировать
И когда ищешь по тексту не нравится вкладка (чтобы присутствовал/отсутствовал), убирается как-нибудь?
тоже в этом файле смореть и оставлять чтото по умолчанию скрытым..
Записан
kibi
Осваиваюсь на форуме
***

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

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


« Ответ #14 : 06.07.2009, 13:10:52 »

Выложите пожалста пошаговую инструкцию по созданию множественного фильтра, такое многим нужно  Huh
Заранее спасибо  Smiley

У меня задача сделать фильтр по характеристикам как здесь - _http://silicon-s.ru/catalog/dvr_secnet_avc/videoregistrator/

Пока что у меня получилось так - http://vmshop.1gb.ua/index.php?page=shop.browse&category_id=6&option=com_virtuemart&Itemid=1&vmcchk=1&Itemid=1

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

P.S.
Joomla 1.5.12
VirtueMart 1.1.3 stable
« Последнее редактирование: 06.07.2009, 13:22:24 от kibi » Записан
morph
Живу я здесь
******

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

Сообщений: 957


« Ответ #15 : 06.07.2009, 13:43:28 »


ну писать комунить инструкцию думаю просто лень.поиск форева.)
Цитировать
Подскажите как сделать чтобы форма фильтра выводилась сразу в категории.
почему инфа не полная?
http://joomlaforum.ru/index.php/topic,69642.0.html
Цитировать
$product_type_id = 3;
include(PAGEPATH. 'shop.parameter_search_form.php');
нормально описано вариант хака.
я модулем делал.
Записан
kibi
Осваиваюсь на форуме
***

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

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


« Ответ #16 : 06.07.2009, 13:56:58 »

Цитата: morph
я модулем делал.

Опиши пожалста процесс вывода модулем,

какой код выводить модулем?

Народ, подскажите как редактировать шаблон расширенного поиска?
Пробую использовать эти теги, но без результата Huh

также присоединяюсь к вопросу
« Последнее редактирование: 07.07.2009, 00:05:02 от kibi » Записан
soldat
Осваиваюсь на форуме
***

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

Сообщений: 83


« Ответ #17 : 07.07.2009, 02:03:36 »

Закоментил строки и нет теперь формы выбора текста (чтобы присутствовал/отсутствовал)

Код:
case "T": // Text
if (!empty($parameter_values)) { // List of values - no comparison
echo "<td><input type=\"hidden\" name=\"".$item_name."_comp\" value=\"texteq\" />\n</td>\n";
break;
}
echo "<td width=\"1%\" height=\"2\" valign=\"top\" align=\"center\">\n";
// echo "<select class=\"inputbox\" name=\"".$item_name."_comp\">\n";
// echo "<option value=\"like\"".(($get_item_value_comp=="like")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_LIKE')."</option>\n";
// echo "<option value=\"notlike\"".(($get_item_value_comp=="notlike")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_NOT_LIKE')."</option>\n";
// echo "<option value=\"fulltext\"".(($get_item_value_comp=="fulltext")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_FULLTEXT')."</option>\n";
// echo "</select></td>";
break;
case "V": // Multiple Value
echo "<td><input type=\"hidden\" name=\"".$item_name."_comp\" value=\"find_in_set\" />\n</td>\n";
break;
case "S": // Short Text
default:  // Default type Short Text
if (!empty($parameter_values)) { // List of values - no comparison
echo "<td><input type=\"hidden\" name=\"".$item_name."_comp\" value=\"texteq\" />\n</td>\n";
break;
}
echo "<td width=\"1%\" height=\"2\" valign=\"top\" align=\"center\">\n";
// echo "<select class=\"inputbox\" name=\"".$item_name."_comp\">\n";
// echo "<option value=\"like\"".(($get_item_value_comp=="like")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_LIKE')."</option>\n";
// echo "<option value=\"notlike\"".(($get_item_value_comp=="notlike")?" selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_IS_NOT_LIKE')."</option>\n";
// echo "</select></td>";
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #18 : 07.07.2009, 04:06:58 »

http://joomlaforum.ru/index.php/topic,69642.0.htmlнормально описано вариант хака.
я модулем делал.
как расширеный поиск по характеристикам вынести в модуль? хэлп
Записан
morph
Живу я здесь
******

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

Сообщений: 957


« Ответ #19 : 07.07.2009, 06:49:34 »

копировать код из shop.parameter_search_form.php , задавать в настройках модуля id типа и подставлять вместо $product_type_id ,или название
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #20 : 07.07.2009, 22:21:57 »

копировать код из shop.parameter_search_form.php , задавать в настройках модуля id типа и подставлять вместо $product_type_id ,или название
Плиз поподробнее...
Захожу в "Менеджер модулей", выбираю "создать", далее "Произвольный HTML-код"....
и там вижу что можно ввести "Суффикс класса модуля".
Как задать в настройках модуля  id типа? Huh

Ещё пробовал такой вариант:
C помощью плагина "Add PHP" пытаюсь вставить PHP страницу (notebook.php) с кодом shop.parameter_search_form.php в описание категории товара (php1.png)(php2.png)
НО ПОЛУЧАЮ:
Код:
Fatal error: Call to a member function query() on a non-object in /php-files/notebook.php on line 24
Жалуется, что не может создать запрос:
Код:
$q  = "SELECT * FROM #__{vm}_product_type ";
$q .= "WHERE product_type_id='$product_type_id' ";
$q .= "AND product_type_publish='Y'";
$db->query($q);
Как доделать такой вариант кто-то знает?


 

* rd_addphp_J1.5.zip (1.51 Кб - загружено 143 раз.)

* php1.png (17.51 Кб, 569x319 - просмотрено 540 раз.)

* php2.png (40.64 Кб, 718x511 - просмотрено 639 раз.)
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #21 : 07.07.2009, 22:47:25 »

ОШИБКА ПОИСКА Sad
Создал тип товара (ноутбуки), несколько характеристик (..., беспроводные соединения, ...) с несколькими значениями (WiFi; Bluetooth).
(e1.png)
Далее создал товар, прикрепил к нему этот тип товара.
Отмечаю характеристики товара. В "беспроводные соединения" отмечаю не одно значение а два  (WiFi и Bluetooth)
(e2.png)
Далее на странице расширенного поиска выбираю ЛЮБОЕ из возможных значений параметра (e3.png) и НЕ НАХОЖУ нужный товар.

Находиться, только если в настройках товара отмечаю только одно значение характеристики (e2.png)
 Huh


* e1.png (30.35 Кб, 807x614 - просмотрено 401 раз.)

* e2.png (21.64 Кб, 582x387 - просмотрено 553 раз.)

* e3.png (21.1 Кб, 520x293 - просмотрено 522 раз.)
« Последнее редактирование: 07.07.2009, 22:53:23 от kryvenko » Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #22 : 07.07.2009, 22:52:07 »

ОШИБКА ПОИСКА Sad


Понял проблему. Товар могу найти если на (e3.png) выбрать "любое выбранное"
Что бы по-умолчанию стояло "любое выбранное" вместо "все выбранные"
Нужно в shop.parameter_search_form.php поменять между собой строки:
Код:
$comp .= "<option value=\"find_in_set_all\"".(($get_item_value_comp=="find_in_set_all")?"selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_FIND_IN_SET_ALL')."</option>\n";
$comp .= "<option value=\"find_in_set_any\"".(($get_item_value_comp=="find_in_set_any")?"selected":"").">".$VM_LANG->_('PHPSHOP_PARAMETER_SEARCH_FIND_IN_SET_ANY')."</option>\n";
Сейчас думаю как вообще скрыть этот пункт выбора ? и что бы по-умолчанию всегда принималось "find_in_set_any"
« Последнее редактирование: 07.07.2009, 23:59:34 от kryvenko » Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #23 : 08.07.2009, 00:21:18 »

ОШИБКА ПОИСКА Sad


Хотя проверил, ошибка есть, даже если выбирать "любое выбранное"
Записан
morph
Живу я здесь
******

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

Сообщений: 957


« Ответ #24 : 08.07.2009, 06:09:24 »

Цитировать
Захожу в "Менеджер модулей", выбираю "создать", далее "Произвольный HTML-код"....
и там вижу что можно ввести "Суффикс класса модуля".
не...писать свой модуль...допустим взять модуль поиска магазина,переименовать его,воткнуть туда код из файла и т.п. ...короче все ручками
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #25 : 10.07.2009, 00:24:25 »

ОШИБКА В ПОИСКЕ, если параметр-характеристика товара имеет несколько значений:

Например, параметр "интерфейс" в типе товара "жесткие диски" имеет значение "SATA II" и "USB2.0" и "FireWire(IEEE1394)" одновременно эти три значения.

Если искать товар, выбрав "интерфейс: SATA II", то товар НЕ НАХОДИТСЯ Sad


* e4.png (59.32 Кб, 1144x463 - просмотрено 504 раз.)
Записан
morph
Живу я здесь
******

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

Сообщений: 957


« Ответ #26 : 10.07.2009, 04:12:23 »

kryvenko,есть такое дело) - ищет только по одному)
shop_browse_queries.php
ишем
Цитировать
case "find_in_set_any":
               $comp = array();
               foreach($get_item_value as $value) {
                  array_push($comp,"FIND_IN_SET('$value',`$parameter_name`)");
               }
               $comp = "(" . join($get_item_value_comp == "find_in_set_all"?" AND ":" OR ", $comp) . ")";
               $parameter_name = "";
               $get_item_value = "";
               break;
меняем на
Цитировать
case "find_in_set_any":
               $comp = array();
               foreach($get_item_value as $value) {
                  array_push($comp,"`$parameter_name` LIKE '%$value%'");
               }
               $comp = "(" . join($get_item_value_comp == "find_in_set_all"?" OR ":" OR ", $comp) . ")";
               $parameter_name = "";
               $get_item_value = "";
               
               break;
попробуй
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #27 : 10.07.2009, 12:21:30 »

kryvenko,есть такое дело) - ищет только по одному)
Ааа!!! Заработало, спасибо +
Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #28 : 11.07.2009, 11:39:06 »

тогда надо так:
Код:
$category_id = vmRequest::getInt( 'category_id' );
global  $mm_action_url, $sess,$vmInputFilter;
<form action="<?php $sess->purl( $mm_action_url."index.php?[color=red]page=shop.browse&category=$category_id[/color]" ) ?>" method="post" name="attr_search">
тогда укажеш форме чтобы открывалась страница списка товаров в нужной категории.
Если отставить
Код:
<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop.browse&category_id=$category_id" ) ?>" method="post" name="attr_search">
То поиск идет не по всем продуктам с необходимым типом товара а только по продуктам с необходимым типом в категории в которой отображ форма((
Тоесть есть каталог товаров:
Категория1
-товар 1 (с типом 1)
-товар 2 (с типом 1)
-товар 3 (с типом 1)
     Подкатегория2
            -товар 4 (с типом 1)
            -товар 5 (с типом 1)
            -товар 6 (с типом 1)
     Подкатегория2
            -товар 7 (с типом 1)
            -товар 8 (с типом 1)
            -товар 9 (с типом 1)

Если видим форму поиска в Категории1, то поиск идет только в Категории1 и под категории не затрагивает ((( (товары 4-9 не участвуют в поиске)
А если свойства кнопки "поиск" оставить стандартные
Код:
<form action="<?php echo URL ?>index.php" method="post" name="attr_search">
то поиск идет по всем категориям и подкатегориям, но результаты поиска отображаются как бы в корне сайта а хотелось что бы результаты появлялись в тойже категории Huh Huh Huh

« Последнее редактирование: 11.07.2009, 11:49:14 от kryvenko » Записан
kryvenko
Осваиваюсь на форуме
***

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

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


Joomla! 1.5.10, VirtueMart 1.1.3


« Ответ #29 : 14.07.2009, 02:07:04 »

Последний трабл решил следующим способом:
  • Cделал вывод товаров из подкатегорий в родительскую категорию http://joomlaforum.ru/index.php/topic,44112.msg267573.html#msg267573  
  • Получил:
    Категория1 "id50"
    -товар 1 (с типом 1)
    -товар 2 (с типом 1)
    -товар 3 (с типом 1)
    -товар 4 (с типом 1)(из Подкатегории1)
    -товар 5 (с типом 1)(из Подкатегории1)
    -товар 6 (с типом 1)(из Подкатегории1)
    -товар 7 (с типом 1)(из Подкатегории2)
    -товар 8 (с типом 1)(из Подкатегории2)
    -товар 9 (с типом 1)(из Подкатегории2)
         Подкатегория1 "id72"
                -товар 4 (с типом 1)
                -товар 5 (с типом 1)
                -товар 6 (с типом 1)
         Подкатегория2 "id77"
                -товар 7 (с типом 1)
                -товар 8 (с типом 1)
                -товар 9 (с типом 1)
    Категория2
    Категория3
  • Форму поиска по характеристикам вывел в категории1 "id50" и подкатегориях (1 "id72", 2 "id77")
  • И что бы из подкатегорий(1 "id72", 2 "id77") мы могли осуществлять поиск по всем товарам категории1("id50") меняю
Код:
<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop.browse&category_id=$category_id" ) ?>" method="post" name="attr_search">
на явное указание категории 1 ("id50")
Код:
<form action="<?php $sess->purl( $mm_action_url."index.php?page=shop.browse&category_id=50" ) ?>" method="post" name="attr_search">

  • Далее хочу более компактно и рационально преобразовать стандартную форму поиска (хочу убрать подписи к полям ввода поисковых значений)
    Вид вывода выпадающего списка меняю:
Код:
echo "<option value=\"\">".$VM_LANG->_('PHPSHOP_SELECT')."</option>\n";
foreach($fields as $field) {
echo "<option value=\"$field\"".(($get_item_value==$field) ? " selected>" : ">"). $field."</option>\n";
}
на:
Код:
echo "<option value=\"\">".$db->f("parameter_label")."</option>\n";
foreach($fields as $field) {
echo "<option value=\"$field\"".(($get_item_value==$field) ? " selected>" : ">"). $field."</option>\n";
}

Изменяю вид вывода целого типа. По умолчанию выбор значения "<="
Код:
switch( $parameter_type ) {
case "C": // Char
if (!empty($parameter_values)) { // List of values - no comparison
echo "<td><input type=\"hidden\" name=\"".$item_name."_comp\" value=\"eq\" />\n</td>\n";
break;
}
case "I": // Integer
case "F": // Float
case "D": // Date & Time
case "A": // Date
case "M": // Time
echo "<td width=\"10%\" height=\"2\" valign=\"top\" align=\"center\">\n";
echo "<select class=\"inputbox\" name=\"".$item_name."_comp\">\n";
echo "<option value=\"lt\"".(($get_item_value_comp=="lt")?" selected":"").">&lt;</option>\n";
echo "<option value=\"le\"".((empty($get_item_value_comp)||$get_item_value_comp=="le")?" selected":"").">&lt;=</option>\n";
echo "<option value=\"eq\"".(($get_item_value_comp=="eq")?" selected":"").">=</option>\n";
echo "<option value=\"ge\"".(($get_item_value_comp=="ge")?" selected":"").">&gt;=</option>\n";
echo "<option value=\"gt\"".(($get_item_value_comp=="gt")?" selected":"").">&gt;</option>\n";
echo "<option value=\"ne\"".(($get_item_value_comp=="ne")?" selected":"").">&lt;&gt;</option>\n";
echo "</select></td>";
break;


Далее замена:

Код:
case "M": // Time
echo " (".$VM_LANG->_('PHPSHOP_PRODUCT_TYPE_PARAMETER_FORM_TYPE_TIME_FORMAT').")";
break;

на:
Код:
case "M": // Time

if ($get_item_value=='') {
// выводим название параметра в поле, кликнув по полю можно ввести значение для поиска
echo "<input value=\"".$db->f("parameter_label")."\"  onfocus=\"if (this.value=='".$db->f("parameter_label")."') this.value=''\" onblur=\"if (this.value=='') this.value='".$db->f("parameter_label")."'\" type=\"text\" class=\"inputbox\"  name=\"$item_name\" size=\"20\"  />";
}
else {
// выводит значение параметра, которое участвует в поиске
echo "<input  value=\"$get_item_value\" onfocus=\"if (this.value=='".$db->f("parameter_label")."') this.value=''\" onblur=\"if (this.value=='') this.value='".$db->f("parameter_label")."'\" type=\"text\" class=\"inputbox\"  name=\"$item_name\" value=\"".$db->f("parameter_label")."\" size=\"20\" />";
}

break;
Получаю (advs1.png)

  • Идеально, казалось бы, проходит поиск. Видно результат поиска; +значения параметров, по которым производился поиск; + вывод результата в нужной категории (advs2.png)
  • НО есть капля дегтя Angry  Huh:
  • Проблема в "целом типе". Нужно во время отправки формы производить проверку:
Код:
если $get_item_value ==$db->f("parameter_label"), то $get_item_value =''
    [/li]
  • запутался с синтаксисом, так понимаю нужно использовать "onsubmit="javascript: if...."?


* advs1.png (68.29 Кб, 729x744 - просмотрено 881 раз.)

* advs2.png (41.46 Кб, 751x682 - просмотрено 631 раз.)
Записан
Страниц: [1] 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ... 20   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | 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