Форум русской поддержки Joomla!® CMS
04.12.2016, 16:20:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Сортировка товаров без цены

 (Прочитано 301 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Suncho
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« : 26.02.2016, 19:32:42 »

Подскажите, как сделать чтобы при сортировке товара по цене в категории, товар без цены (с надписью позвонить для запроса цены) были всегда внизу списка?
Сейчас у меня там такой код:
Код:
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
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 826


Е = mс²


« Ответ #1 : 27.02.2016, 17:28:17 »

Код
$orderBy = ' ORDER BY `product_price`, `product_in_stock` DESC';
 

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

Записан
Suncho
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #2 : 27.02.2016, 21:06:56 »

Код
$orderBy = ' ORDER BY `product_price`, `product_in_stock` DESC';
 

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


Так пробовал, товар пропадает.....
Записан
gartes
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 826


Е = mс²


« Ответ #3 : 27.02.2016, 21:46:36 »

А целый запрос можно посмотреть.. ?
Записан
gartes
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 826


Е = mс²


« Ответ #4 : 27.02.2016, 21:54:17 »

Вытащить его можно так.
после $db->setQuery($query);
Поставить  echo $query->dump();
Записан
Suncho
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #5 : 27.02.2016, 22: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
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #6 : 27.02.2016, 22:28:57 »

Вот весь файл...

* product.rar (20.06 Кб - загружено 6 раз.)
Записан
gartes
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 826


Е = mс²


« Ответ #7 : 27.02.2016, 22:49:08 »

Ну простите и зачем мне Ваш файл... Вы бы мне еще дистрибутив с VirtueMart скинули тогда я бы точно разобрался.. ))

А целый запрос можно посмотреть.. ?
Я же не экстрасенс... ))
Записан
Suncho
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 44


« Ответ #8 : 27.02.2016, 22:58:09 »

$db->setQuery($query);   -  такой строки нет в этом файле....
Записан
gartes
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 826


Е = mс²


« Ответ #9 : 27.02.2016, 22:59:15 »

Путь /administrator/components/com_virtuemart/helpers/vmmodel.php
Строка 832.
Пишем echo $q->dump();

Смотрим отправляем ))
Записан
gartes
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 826


Е = mс²


« Ответ #10 : 27.02.2016, 23:00:46 »

Цитировать
$db->setQuery($query);   -  такой строки нет в этом файле....
Да нету...
За то есть
Код
$product_ids = $this->exeSortSearchListQuery (2, $select, $joinedTables, $whereString, $groupBy, $orderBy, $this->filter_order_Dir, $nbrReturnProducts);
 
Записан
gartes
Живу я здесь
******

Репутация: +63/-3
Offline Offline

Сообщений: 826


Е = mс²


« Ответ #11 : 27.02.2016, 23:02:33 »

В общем Ваш запрос тут отрабатывает тут нужно на него и смотреть .
Цитировать
/administrator/components/com_virtuemart/helpers/vmmodel.php

Там посмотрите что в переменных прилетает...
Попробуйте разобраться...
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet