Вход • Регистрация

Как в фильтр по товарам добавить разде

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

    Подскажите, может кто сталкивался?
  • 07 мая 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>';
    }
    • 08 июля 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).
      • 08 июля 2013 г.
      • т.е. нельзя сделать так:

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

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

        Искать

        Если я хочу найти носки определенного бренда, получается мне сперва надо зайти в носки на сайте, я не могу сразу дать выбрать категорию в блоке поиска, я правильно понимаю?
        • 09 июля 2013 г.
        • Цитата
          Если я хочу найти носки определенного бренда, получается мне сперва надо зайти в носки на сайте, я не могу сразу дать выбрать категорию в блоке поиска, я правильно понимаю?
          Если бренды - характеристика только для носков, то да. Если бренды - характеристика общая - то нет, он будет искать и из общей формы.
  • 07 мая 2013 г.
  • так же в списке не выводятся параметры с типом Выпадающий список
    • 08 июля 2013 г.
    • Никто не знает?
      • 08 июля 2013 г.
      • Блин Саш ты такие вопросы поднимаешь, где надо повтыкать не одну минуту в код и призадуматься.
        Время - деньги, а бесплатно никто работать не будет, если только тема цепляет то может быть.
        Так что Вопросы из категории 'Брать на понт' смотрятся не очень.

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

        Вообщем что хочу сказать - нет ответа значит нет ответа, ну что поделаешь. Такая у нас работа.
        • 08 июля 2013 г.
        • Ну вообще, Денис, это я привел стандартный код, просто хотелось вывести выпадающий список категории. Лан все равно надо будет разбираться, результат скину в теме
  • 09 июля 2013 г.
  • Цитата
    Вообщем что хочу сказать - нет ответа значит нет ответа, ну что поделаешь. Такая у нас работа.

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

    Былоб у меня время я бы из спортивного интереса бы занялся.
    • 09 июля 2013 г. , редакция: 09 июля 2013 г.
    • Дима, бросай все и сделай доброе дело)))
      Вот идея такая появилась, не знаю, может кому-то бредовая покажется, но все-таки. Что-бы был стимул выкладывать решения интересные, то может ввести какие-то бонусы?
      Например, выложил 3 интересных и нужных решения, получи лицензию бесплатно или 0,5 к рейтингу разработчика?
      Но только как адекватные критерии полезности придумывать? это решаемая проблема.
      А разработчики Diafana потом могут по-необходимости в пакет что-нибудь затолкать:)
      • 09 июля 2013 г.
      • Ну идея действительно не плохая, надо чтоб народ только поддержал, ну и наш гуру Виталий ( т.к. он тут больше всех сидит из разроботчиков) внёс свою лепту... Посмотрим что народ скажет. а вообще надо для этого отдельную тему завести и там всё по полочкам разложить и услышать мнение каждого, кто более менее живёт на форуме...
      • 09 июля 2013 г.
      • Ну на счёт лицухи на халяву за 3 решения, незнаю хотя смотря какие, и опять же, кто оценивать это всё будет. А вот + к рейтингу это запросто. Только опять - же у кого нет свободного времени брать заказы в "проектах" тому эти рейтинги побольшому счёту роли не играют.
  • 10 июля 2013 г.
  • Кстати аякс вообще отрабатывает? У меня как-то не пахало ни разу.
  • 09 апреля 2015 г.
  • Вообще-то, опозиционеры топик стартера напоминают ребят, которые за пользователя решают, что ему удобнее. Для примера попробовал бы кто задвинуть тему риелтору, что на сайте сначала удобнее зайти в категорию типа недвижимости, а потом юзать поиск... ну покрутил бы клиент у виска и пошел дальше. Товарищи программисты, не надо выдавать желаемое за действительное.

    Сам сейчас столкнулся с этим же вопросом - поиск "бренд+категория". Александр Биг Эпл, вы решили эту задачу?
  • 10 ноября 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>';
    }


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

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум