Перейти к содержимому


Фотография
- - - - -

Отображение товаров на сайте по начальному условию


Лучший Ответ SmetDenis , 03 August 2016 - 07:48

Хак я делал в этом файле

jbuniversal\elements\jbprice\jbprice.php

t22t_200x0.png

        if ($this->app->jbrequest->get('task') == 'filter') {

            $sql = new JBDatabaseQuery(JFactory::getDbo());
            $sql
                ->select('tSku.variant')
                ->from(ZOO_TABLE_JBZOO_SKU . ' AS tSku')
                ->where('tSku.item_id = ?', $this->getItem()->id)
                ->where('tSku.param_id = ?', '_value')
                ->where('tSku.element_id = ?', $this->identifier)
                ->limit(1)
            ;

            $elements = $this->app->jbrequest->getElements();
            $values = @explode('/', $elements[$this->identifier]['_value']['range']);

            if ($values[0]) {
                $sql->where('tSku.value_n >= ?', $values[0]);
            }

            if ($values[1]) {
                $sql->where('tSku.value_n <= ?', $values[1]);
            }

            $row = JBModel::model()->fetchRow($sql);
            if ($row) {
                return $row->variant;
            }
        }
Сработает только для Plain, т.к Calc не хранит данные в базе по другому Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 8

#1 Василий

Василий

Отправлено 24 May 2016 - 06:39

Здравствуйте! 

 

 

На сайте есть около 100 товаров с диапазоном цен от 5 до 100 тр. Из них только 10 товаров с вариантами цены от 20 до 40 тр (шаг 1 тр). Можно ли, при указании пользователем в фильтре диапазона цен от 30 до 40 тр вывести эти 10 товаров с уже отображённой на сайте ценой в 30 тр, а не 20 тр, которая выбрана была по умолчанию? 

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

 

 

Спасибо. 


Сообщение отредактировал Василий: 24 May 2016 - 06:48

  • 0

#2 SmetDenis

SmetDenis

Отправлено 25 May 2016 - 20:34

Василий, Извините за ожидание. Я помню ваш вопрос.

Сейчас еду на JoomlaDay. Как доберусь до места дислокации, то напишу вам примерное решение.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#3 Василий

Василий

Отправлено 01 June 2016 - 12:54

Василий, Извините за ожидание. Я помню ваш вопрос.

Сейчас еду на JoomlaDay. Как доберусь до места дислокации, то напишу вам примерное решение.

Денис, здравствуйте! 

 

а сейчас сможете оказать поддержку? :)


  • 0

#4 SmetDenis

SmetDenis

Отправлено 01 June 2016 - 13:38

Да, Василий.

 

Спасибо что напомнили. У вас уже есть наполненный сайт? Могу сделать хак прямо у вас.
Просто на локале нет ничего подходящего.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#5 Василий

Василий

Отправлено 04 June 2016 - 16:14

Денис, добрый день! 

 

Да, уже есть. Вышлю в личку данные для доступа. 

 

Только вот при очередном обновлении они, хаки эти, слетят? 


  • 0

#6 Cheren-dow

Cheren-dow

Отправлено 08 June 2016 - 18:11

Только вот при очередном обновлении они, хаки эти, слетят? 

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


  • 1
Изображение
 

#7 SmetDenis

SmetDenis

Отправлено 03 August 2016 - 07:48   Лучший Ответ

Хак я делал в этом файле

jbuniversal\elements\jbprice\jbprice.php

t22t_200x0.png
        if ($this->app->jbrequest->get('task') == 'filter') {

            $sql = new JBDatabaseQuery(JFactory::getDbo());
            $sql
                ->select('tSku.variant')
                ->from(ZOO_TABLE_JBZOO_SKU . ' AS tSku')
                ->where('tSku.item_id = ?', $this->getItem()->id)
                ->where('tSku.param_id = ?', '_value')
                ->where('tSku.element_id = ?', $this->identifier)
                ->limit(1)
            ;

            $elements = $this->app->jbrequest->getElements();
            $values = @explode('/', $elements[$this->identifier]['_value']['range']);

            if ($values[0]) {
                $sql->where('tSku.value_n >= ?', $values[0]);
            }

            if ($values[1]) {
                $sql->where('tSku.value_n <= ?', $values[1]);
            }

            $row = JBModel::model()->fetchRow($sql);
            if ($row) {
                return $row->variant;
            }
        }
Сработает только для Plain, т.к Calc не хранит данные в базе по другому
  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#8 Василий

Василий

Отправлено 03 August 2016 - 15:52

Благодарю! 

 

Это же хак сразу для двух вопросов? Вот эти вопросы: 

1). Фильтр по всем полям прайса

2). Отображение товаров на сайте по начальному условию 


  • 0

#9 SmetDenis

SmetDenis

Отправлено 05 August 2016 - 14:59

По первому решению там уже есть решение на скриншоте, но, как я уже писал вам, оно работает только для plain.


  • 0
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.





Click to return to top of page in style!