0 Пользователей и 1 Гость просматривают эту тему.
  • 11 Ответов
  • 1433 Просмотров
*

Suncho

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Подскажите, как сделать чтобы при сортировке товара по цене в категории, товар без цены (с надписью позвонить для запроса цены) были всегда внизу списка?
Сейчас у меня там такой код:
Код
case 'product_price':
$orderBy = ' ORDER BY `product_price` ';
$ff_select_price = ' , IF(pp.override, pp.product_override_price, pp.product_price)/(SELECT currency_exchange_rate from #__virtuemart_currencies WHERE virtuemart_currency_id=pp.product_currency) as product_price ';
$joinPrice = TRUE;

Как правильно сделать доп. сортировку по значению product_in_stock?
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Сортировка товаров без цены
« Ответ #1 : 27.02.2016, 16:28:17 »
Код: php
$orderBy = ' ORDER BY `product_price`, `product_in_stock` DESC';

Так попробуйте.

*

Suncho

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Re: Сортировка товаров без цены
« Ответ #2 : 27.02.2016, 20:06:56 »
Код: php
$orderBy = ' ORDER BY `product_price`, `product_in_stock` DESC';

Так попробуйте.


Так пробовал, товар пропадает.....
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Сортировка товаров без цены
« Ответ #4 : 27.02.2016, 20:54:17 »
Вытащить его можно так.
после $db->setQuery($query);
Поставить  echo $query->dump();
*

Suncho

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Re: Сортировка товаров без цены
« Ответ #5 : 27.02.2016, 21:02:38 »
А целый запрос можно посмотреть.. ?

Вот код
Код
// special  orders case
//vmdebug('my filter ordering ',$this->filter_order);
$ff_select_price = '';
switch ($this->filter_order) {
case '`p`.product_special':
if($isSite){
$where[] = ' p.`product_special`="1" '; // TODO Change  to  a  individual button
$orderBy = 'ORDER BY RAND()';
} else {
$orderBy = 'ORDER BY p.`product_special`';
}

break;
case 'category_name':
$orderBy = ' ORDER BY `category_name` ';
$joinCategory = TRUE;
$joinCatLang = true;
break;
case 'category_description':
$orderBy = ' ORDER BY `category_description` ';
$joinCategory = TRUE;
$joinCatLang = true;
break;
case 'mf_name':
$orderBy = ' ORDER BY `mf_name` ';
$joinMf = TRUE;
$joinMfLang = true;
break;
case 'pc.ordering':
$orderBy = ' ORDER BY `pc`.`ordering` ';
$joinCategory = TRUE;
break;
case 'product_price':
//$filters[] = 'p.`virtuemart_product_id` = p.`virtuemart_product_id`';
//$orderBy = ' ORDER BY `product_price` ';
//$orderBy = ' ORDER BY `ff_final_price`, `product_price` ';
$orderBy = ' ORDER BY `product_price` ';
$ff_select_price = ' , IF(pp.override, pp.product_override_price, pp.product_price)/(SELECT currency_exchange_rate from #__virtuemart_currencies WHERE virtuemart_currency_id=pp.product_currency) as product_price ';
$joinPrice = TRUE;
break;
case '`p`.created_on':
$orderBy = ' ORDER BY p.`created_on` ';
break;
default;
if (!empty($this->filter_order)) {
$orderBy = ' ORDER BY ' . $this->filter_order . ' ';
}
else {
$this->filter_order_Dir = '';
}
break;
}
*

Suncho

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Re: Сортировка товаров без цены
« Ответ #6 : 27.02.2016, 21:28:57 »
Вот весь файл...
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Сортировка товаров без цены
« Ответ #7 : 27.02.2016, 21:49:08 »
Ну простите и зачем мне Ваш файл... Вы бы мне еще дистрибутив с VirtueMart скинули тогда я бы точно разобрался.. ))

А целый запрос можно посмотреть.. ?
Я же не экстрасенс... ))
*

Suncho

  • Осваиваюсь на форуме
  • 48
  • 0 / 0
Re: Сортировка товаров без цены
« Ответ #8 : 27.02.2016, 21:58:09 »
$db->setQuery($query);   -  такой строки нет в этом файле....
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Сортировка товаров без цены
« Ответ #9 : 27.02.2016, 21:59:15 »
Путь /administrator/components/com_virtuemart/helpers/vmmodel.php
Строка 832.
Пишем echo $q->dump();

Смотрим отправляем ))
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Сортировка товаров без цены
« Ответ #10 : 27.02.2016, 22:00:46 »
Цитировать
$db->setQuery($query);   -  такой строки нет в этом файле....
Да нету...
За то есть
Код: php
$product_ids = $this->exeSortSearchListQuery (2, $select, $joinedTables, $whereString, $groupBy, $orderBy, $this->filter_order_Dir, $nbrReturnProducts);
*

gartes

  • Завсегдатай
  • 1859
  • 142 / 6
  • Е = mс²
Re: Сортировка товаров без цены
« Ответ #11 : 27.02.2016, 22:02:33 »
В общем Ваш запрос тут отрабатывает тут нужно на него и смотреть .
Цитировать
/administrator/components/com_virtuemart/helpers/vmmodel.php

Там посмотрите что в переменных прилетает...
Попробуйте разобраться...
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Сортировка значений фильтра Custom Filters PRO 2.3.2

Автор banditman

Ответов: 5
Просмотров: 2571
Последний ответ 30.01.2023, 17:00:05
от Танита Сар
Как сделать разделение цены по 3 разряда? Решено

Автор varella

Ответов: 13
Просмотров: 1276
Последний ответ 28.10.2022, 19:32:37
от marksetter
"Позвонить для запроса цены" не выводится

Автор Akeksandr

Ответов: 13
Просмотров: 1481
Последний ответ 10.01.2022, 16:54:33
от draff
Изменить шрифт копее у цены

Автор DrShepard

Ответов: 5
Просмотров: 1368
Последний ответ 27.08.2021, 11:12:11
от DrShepard
Удалить псевдонимы товаров

Автор AHTEPO

Ответов: 9
Просмотров: 3063
Последний ответ 26.10.2020, 01:33:20
от gartes