Писать на форуме DIAFAN.CMS могут только зарегистрированные пользователи. Войдите или зарегистрируйтесь.

Форум Модули DIAFAN.CMS Поиск по сайту Как в фильтр по товарам добавить разде


Александр Биг Эпл (ba5) 8307 мая 2013 г.

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

Подскажите, может кто сталкивался?

Александр Биг Эпл (ba5) 8307 мая 2013 г.

В шаблоне есть код, но как его на сайте активировать? Пробовал стирать условия if, на сайте появлятеся пустой селет

Код
if (count($result["site_ids"]) > 1)
{
echo '<div class="shop_search_site_ids">
<span class="infofield">'.$this->diafan->_('Раздел').':</span>
<select>';
foreach($result["site_ids"] as $row)
{
echo '<option value="'.$row["id"].'" path="'.BASE_PATH_HREF.$row["path"].'"';
if($result["site_id"] == $row["id"])
{

Показать весь код
echo ' selected';
}
echo '>'.$row["name"].'</option>';
}
echo '</select>';
echo '</div>';
}

if (count($result["cat_ids"]) > 1)
{
echo '<div class="shop_search_cat_ids">
<span class="infofield">'.$this->diafan->_('Категория').':</span>
<select name="cat_id">';
foreach($result["cat_ids"] as $row)
{
echo '<option value="'.$row["id"].'" site_id="'.$row["site_id"].'"';
if($result["cat_id"] == $row["id"])
{
echo ' selected';
}
echo '>';
if($row["level"])
{
echo str_repeat('- ', $row["level"]);
}
echo $row["name"].'</option>';
}
echo '</select>';
echo '</div>';
}

Виталий (DIAFAN.CMS) 62808 июля 2013 г.

По умолчанию в логике CMS заложен следующий алгоритм:
находясь в корне сайте/каталога тег вывода фильтра по товарам ищет по всем категориям и по общим характеристикам.
Когда мы переходим в категорию, этот же тег начинает выводить доп.характеристики этой текущей категории и искать только по ней.
То, что Вы указали - это параметры из тега.

Цитата
show_search – выводит форму поиска товаров. Если для категорий прикреплены дополнительные характеристики, то поиск по ним производится только на странице категории. Поиск по обязательным полям подключается в настройках модуля (опции «Искать по цене», «Искать по описанию», «Искать по названию», «Искать по артикулу», «Искать товары по акции», «Искать новинки», «Искать хиты»). Если в форму поиска выведены характеристики с типом «выпадающий список» и «список с выбором нескольких значений», то значения характеристик, которые не найдут ни один товар, в форме поиска не выведутся.

Атрибуты:

— only_shop – выводить форму поиска только на странице магазина;

— site_id – страницы, к которым прикреплен модуль. Идентификаторы страниц перечисляются через запятую. По умолчанию выбираются все страницы. Если выбрано несколько страниц сайта, то в форме поиска появляется выпадающих список по выбранным страницам;

— cat_id – категории товаров, если в настройках модуля отмечено «Использовать категории». Идентификаторы категорий перечисляются через запятую. Можно указать значение current, тогда поиск будет осуществляться по текущей (открытой) категории магазина или по всем категориям, если ни одна категория не открыта. Если выбрано несколько категорий, то в форме поиска появится выпадающий список категорий магазина, который будет подгружать прикрепленные к категориям характеристики. Можно указать значение all, тогда поиск будет осуществлятся по всем категориям товаров и в форме будут частвовать только общие характеристики;

— ajax – подгружать результаты поиска без перезагрузки страницы. Результаты подгружаются только если открыта страница со списком товаром, иначе поиск работает обычным образом;

— template – шаблон тега (файл modules/shop/views/shop.view.show_search_template.php; по умолчанию шаблон modules/shop/views/shop.view.show_search.php).

Александр Биг Эпл (ba5) 8308 июля 2013 г.

т.е. нельзя сделать так:

Поиск по товарам:

Категория: <-выпадающий список->
Бренд: <-выпадающий список->
Пол: <-выпадающий список->

Искать

Если я хочу найти носки определенного бренда, получается мне сперва надо зайти в носки на сайте, я не могу сразу дать выбрать категорию в блоке поиска, я правильно понимаю?

Александр Биг Эпл (ba5) 8308 июля 2013 г.

Придется что ли создавать доп параметр?

Виталий (DIAFAN.CMS) 62809 июля 2013 г.

Цитата
Если я хочу найти носки определенного бренда, получается мне сперва надо зайти в носки на сайте, я не могу сразу дать выбрать категорию в блоке поиска, я правильно понимаю?
Если бренды - характеристика только для носков, то да. Если бренды - характеристика общая - то нет, он будет искать и из общей формы.

Александр Биг Эпл (ba5) 8307 мая 2013 г.

так же в списке не выводятся параметры с типом Выпадающий список

Александр Биг Эпл (ba5) 8308 июля 2013 г.

Никто не знает?

Denis (Drachoon) 13908 июля 2013 г.

Блин Саш ты такие вопросы поднимаешь, где надо повтыкать не одну минуту в код и призадуматься.
Время - деньги, а бесплатно никто работать не будет, если только тема цепляет то может быть.
Так что Вопросы из категории 'Брать на понт' смотрятся не очень.

У меня на форуме тоже с десяток вопросов и предложений есть, часть которых, я до сих пор не решил.
А те что решил, и на мой взгляд интересное решение получилось, стараюсь выложить в той же теме, смотрю и ты тоже так делаешь молодец.

Вообщем что хочу сказать - нет ответа значит нет ответа, ну что поделаешь. Такая у нас работа.

Александр Биг Эпл (ba5) 8308 июля 2013 г.

Ну вообще, Денис, это я привел стандартный код, просто хотелось вывести выпадающий список категории. Лан все равно надо будет разбираться, результат скину в теме

Дмитрий (putnik) 509 июля 2013 г.

Цитата
Вообщем что хочу сказать - нет ответа значит нет ответа, ну что поделаешь. Такая у нас работа.

Ну не совсем так. Я считаю что не только Саше интересно реализация данной задачи, просто может быть такое что кто то уже реализовывал подобное, Напримр если я с этим столкнусь я обязательно выложу сюда решение. Но в одном вы всётаки правы
Цитата
Время - деньги, а бесплатно никто работать не будет, если только тема цепляет то может быть.

Былоб у меня время я бы из спортивного интереса бы занялся.

Александр (LidStudio) 6009 июля 2013 г., редакция 09 июля 2013 г.

Дима, бросай все и сделай доброе дело)))
Вот идея такая появилась, не знаю, может кому-то бредовая покажется, но все-таки. Что-бы был стимул выкладывать решения интересные, то может ввести какие-то бонусы?
Например, выложил 3 интересных и нужных решения, получи лицензию бесплатно или 0,5 к рейтингу разработчика?
Но только как адекватные критерии полезности придумывать? это решаемая проблема.
А разработчики Diafana потом могут по-необходимости в пакет что-нибудь затолкать:)

Дмитрий (putnik) 509 июля 2013 г.

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

Denis (Drachoon) 13909 июля 2013 г.

Ну на счёт лицухи на халяву за 3 решения, незнаю хотя смотря какие, и опять же, кто оценивать это всё будет. А вот + к рейтингу это запросто. Только опять - же у кого нет свободного времени брать заказы в "проектах" тому эти рейтинги побольшому счёту роли не играют.

Андрей (R4W) 5410 июля 2013 г.

Лучше систему пожертвований тогда ввести :)

Denis (Drachoon) 13910 июля 2013 г.

Мини kickstarter.diafan.ru
Пора тему переносить в отдельную ветку.

Андрей (R4W) 5410 июля 2013 г.

Кстати аякс вообще отрабатывает? У меня как-то не пахало ни разу.

Oleg Bodichev (inetcenter) 309 апреля 2015 г.

Вообще-то, опозиционеры топик стартера напоминают ребят, которые за пользователя решают, что ему удобнее. Для примера попробовал бы кто задвинуть тему риелтору, что на сайте сначала удобнее зайти в категорию типа недвижимости, а потом юзать поиск... ну покрутил бы клиент у виска и пошел дальше. Товарищи программисты, не надо выдавать желаемое за действительное.

Сам сейчас столкнулся с этим же вопросом - поиск "бренд+категория". Александр Биг Эпл, вы решили эту задачу?

Дмитрий (TOP-NNOV) 210 ноября 2016 г.

Хотя бы для поля "производители" есть готовый вариант с выпадающим списком? а то почему-то никак не ищет по нему
Код
echo '<div class="shop_search_brand">
<span class="input-title">'.$this->diafan->_('Производитель').':</span> <select>';
foreach($result["brands"] as $row)
{
echo '<option value="'.$row["id"].'" ';
if($result["brand"] == $row["id"])
{
echo ' selected';
}
echo '>'.$row["name"].'</option>';

Показать весь код
}
echo '</select>';
echo '</div>';
}


мой код. Такое ощущение что не передается айди.

Виталий NVGPRO (DIAFAN.CMS) 32410 ноября 2016 г.

Дмитрий (TOP-NNOV), для начала обратите внимание на свой код, который привели. У Вас открывающий div перед циклом, а закрывающие внутри него.
Успехов.

Дмитрий (TOP-NNOV) 211 ноября 2016 г.

Виталий, Закрывающий див у меня как раз после цикла) а не в цикле, смотрите внимательнее. И вопрос актуален, в тп сказали что нет имени у селекта, добавил, но результат тот же.

Виталий NVGPRO (DIAFAN.CMS) 32411 ноября 2016 г.

Цитата
Закрывающий див у меня как раз после цикла) а не в цикле, смотрите внимательнее.
Посмотрел внимательнее, верно, закрывающий тег после цикла.
Цитата
И вопрос актуален, в тп сказали что нет имени у селекта, добавил, но результат тот же.
Все верно Вам сказали, должны быть соответствующие метки, чтобы необходимая информация улетела в $_POST, а дальше обработалась и выдался бы нужный результат.
PS: Надеюсь не забыли в настройках Каталога (модуля Магазин), в разделе "Поля, участвующие в поиске" включить пункт: "производитель".