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

Фильтр по цене

  • 24 июня 2014 г.
  • Может кто делал?

    Как сделать такой фильтр по цене на диафане, чтоб контент менялся не на странице поиска а прям на этой же страницы

    Вот пример: http://moiki.biz/shop/2
    • 24 июня 2014 г.
    • Тут как бы видиимо 2 задачи:

      1. Отметить наибольшую и наименьшую стоимость товара и
      2, чтобы результаты грузились прямо в тексте
      • 24 июня 2014 г.
      • Делал.

        1 - в модели магазина пишете запрос на максимальную стоимость товара, ну и минимальную, если 0 не устраивает.
        - выводите его во вьюхе ползунка
        2 - отправляете форму с ползунком аяксом к контроллеру магазина, получаете данные, выводите в подготовленный div (или еще чего), в котором товары выводятся по умолчанию.

        • 14 ноября 2016 г.
        • Сделал данную вещь, работает, но только если товар без валюты.
          Как быть если все цены в валюте?
          • 15 ноября 2016 г.
          • Цитата
            Как быть если все цены в валюте?
            А это что меняет, используется другая система счислений?
            • 15 ноября 2016 г.
            • Из кода что приведен в этой теме, цены выводится такие как в базе, и если она основная (рубли) то все ок, если цена в валюте, то и выводится в валюте, вместо того чтобы уже готовая.
              Не знаю что и как там меняется, но знаю что код не совсем рабочий.

              Я уже сделал минимальную и максимальную цену со всеми валютами, но совсем по другому, возможно это неправильно, но зато все работает , код долго сюда вставлять, т.к. затронуто 4 файла.
              • 15 ноября 2016 г. , редакция: 15 ноября 2016 г.
              • А-а, увидел, так в запросе не хватает кое-чего
                Вот оригинал сообщения
                Цитата
                Горопашный Степан (stepanych) 2727 июня 2014 г.
                ориентировочно так

                Код

                private function get_min_max_price(){
                $max_price = 0;
                $min_price = 0;
                $r = DB::query("SELECT MAX( sp.price ) as maxprice, MIN( sp.price ) as minprice FROM {shop_price} sp"
                . " Inner join {shop} s"
                . " on s.id=sp.good_id"
                . " WHERE sp.trash = '0' AND s.trash='0'");
                //. " and s.cat_id=%d", $this->diafan->cat);

                $row = DB::fetch_array($r);
                $max_price = $row['maxprice'];
                $min_price = $row['minprice'];

                $res["maxprice"] = $max_price;
                $res["minprice"] = $min_price;
                include_once ABSOLUTE_PATH.'plugins/json.php';
                echo to_json($res);
                return true;
                }

                Во-первых, находим вот эту строчку
                Код
                FROM {shop_price} sp
                и излагаем ее так
                Код
                FROM {shop_price} AS sp

                Во-вторых, вот эту строчку
                Код
                . " Inner join {shop} s"
                все же лучше изложить так
                Код
                . " INNER JOIN {shop} AS s"

                А вот теперь главное, находим эту строчку
                Код
                . " WHERE sp.trash = '0' AND s.trash='0'");
                и излагаем ее так
                Код
                . " WHERE currency_id=0 AND sp.trash = '0' AND s.trash='0'");

                То, что я изложил - не значит, что Горопашный Степан (stepanych) что-то написал не так. Я изложил это, чтобы Вам жизнь казалась чуточку легче. :)

                Успехов, коллега.
              • 15 ноября 2016 г. , редакция: 15 ноября 2016 г.
              • Все гораздо проще:)
                Цитата
                $result['pricebounds'] = DB::query_fetch_array('select min(price) as min, max(price) as max from {shop} as s join {shop_price} as p on s.id=p.good_id where currency_id=0 and s.cat_id in ('.implode(', ',$cat_ids).')');


                И используем во вьюхе:
                $result['pricebounds']['max']
                $result['pricebounds']['min']

                И в итоге данная задача решилась у меня в 3-х разных вариантах))
              • 15 ноября 2016 г.
              • Цитата
                Степан (idxdoc) 1120 минут назад, редакция 17 минут назад
                Все гораздо проще:)

                Интересно, а если без ранее указанной строчки
                Код
                where currency_id=0
                у Вас было бы проще? :)) Можете не отвечать, ответ знаю. :)
            • 15 ноября 2016 г. , редакция: 17 ноября 2016 г.
            • Забыл поблагодарить)))
              СпасибО!)
              Без этой строчки и не работало))

              Буду очень рад, если Вы мне поможете справиться с характеристиками

              Уже сам сделал
      • 24 июня 2014 г.
      • А все понял по аяку вроде работает, только почему-то он подгружает мне мою же страницу снизу сайта с уже отфильтрованными товарами, похходу я видимо где-то какой-то тег пропустил?
    • 25 июня 2014 г.
    • С поиском разобрался, осталось получить данные по минимальной и максимальной цене

      Цитата
      Ответ из ТП:
      Вам нужно произвести запрос к таблице shop_price на поиск минимального и максимального значения поля price по id товара - good_id.


      Но мне это мало чего дало
  • 24 июня 2014 г.
  • В форме поиска по товарам, выводимой шаблонным тегом show_search, есть поля цена от ... до - надо только к этим полям прикрутить какой нибудь ползунок на js. И ajax подгрузка товаров тоже имеется, aтрибут ajax для шаблонного тега show_search – подгружать результаты поиска без перезагрузки страницы.
    Или я что то не так понял? )
    • 24 июня 2014 г.
    • Почему когда я жму искать, то у меня код страницу опять подгружается?

      получается на одно странице сайт 2 раза

      как указать область подгрузки контента,

      в списке товаров как и в исходных файлах используется класс shop_list
      • 24 июня 2014 г.
      • Могу на платной основе реализовать

        Делал похожее
        _http://parket.lipetsk-web.ru/katalog/laminat/
        • 25 июня 2014 г.
        • на платной не надо, почти разобрался, а вот если подскажешь как минимальную и максимальну цену товаров в категории вывести, буду благодарен
          • 27 июня 2014 г.
          • ориентировочно так
            Код

            private function get_min_max_price(){
            $max_price = 0;
            $min_price = 0;
            $r = DB::query("SELECT MAX( sp.price ) as maxprice, MIN( sp.price ) as minprice FROM {shop_price} sp"
            . " Inner join {shop} s"
            . " on s.id=sp.good_id"
            . " WHERE sp.trash = '0' AND s.trash='0'");
            //. " and s.cat_id=%d", $this->diafan->cat);
            $row = DB::fetch_array($r);
            $max_price = $row['maxprice'];
            $min_price = $row['minprice'];


            $res["maxprice"] = $max_price;
            $res["minprice"] = $min_price;
            include_once ABSOLUTE_PATH.'plugins/json.php';
            echo to_json($res);
            return true;
            }
            • 27 июня 2014 г.
            • ребята, подскажите куда копать, что бы выводилось число найденых товаров?
              примерно как у Денис (korogan) на сайте _http://parket.lipetsk-web.ru/katalog/laminat/


              Спасибо
              • 27 июня 2014 г.
              • в модели магазина есть функция list_search, внутри нее есть $count_result

                вам нужно дописать
                $this->result['count_result'] = $count_result;
                и в шаблоне вывести сие значение

Новости

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