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

Dmitka

  • Захожу иногда
  • 54
  • 1 / 8
Товар в конец списка
« : 03.06.2011, 14:56:53 »
Долго искал, но ответа так и н нашел:(
Подскажите пожалуйста, как разместить в конце списка товар без цены (нет в наличии).
*

Dmitka

  • Захожу иногда
  • 54
  • 1 / 8
Re: Товар в конец списка
« Ответ #1 : 03.06.2011, 19:07:44 »
Что никто не знает?
*

Gruz

  • Завсегдатай
  • 1275
  • 167 / 3
  • gruz@jabber.org | gruz.org.ua
Re: Товар в конец списка
« Ответ #2 : 03.06.2011, 21:33:48 »
Стандартными средствами никак.

Исследуй вот это, поможет при собственных копаниях: http://joomla.org.ua/tips-tricks-tutorials/joomla-howto/273-virtuemart-114
Життя має дві форми - горіння і гниття!
-
Со мной на "ты" - Вам лень развёрнуто формулировать вопрос? Нам лень отвечать. Правильный вопрос: - Версии J! и проблемного расширения? - Что хотел? - Что пробовал? - Что получилось и что не получилось? - Какие были ошибки?
*

Eholov

  • Захожу иногда
  • 170
  • 14 / 0
Re: Товар в конец списка
« Ответ #3 : 02.02.2013, 19:02:03 »
Отсортировать товар VirtueMart Null в конце
При сортировке товара по цене, товар без цены отображается вверху, эту неприятность для линейки VirtueMart 1,0 убираем:
administrator/components/com_virtuemart/html/shop_browse_queries.php

ищем строку
$q .= "\n ORDER BY $orderbyField $DescOrderBy";

меняем на:

$q .= "\n ORDER BY IF($orderbyField IS NULL,1,0), $orderbyField $DescOrderBy";

Для VirtueMart линейки 1,1,x дополнительно

файл
administrator/components/com_virtuemart/html/shop.browse.php

ищем процедуру
// Need to re-order here, because the browse query doesn't fetch discounts
if( $orderby == 'product_price' ) {
if ($DescOrderBy == "DESC") {
// using krsort when the Array must be sorted reverse (Descending Order)
krsort($products, SORT_NUMERIC);
} else {
// using ksort when the Array must be sorted in ascending order
ksort($products, SORT_NUMERIC);
}
}

Убиваем ее, особо не разбирался для чего дополнительная сортировка по цене. Наслаждаемся результатом.
  источник http://newtime.in.ua/zametki/82--virtuemart-null-
*

gaalferov

  • Захожу иногда
  • 75
  • 9 / 0
  • ...
Re: Товар в конец списка
« Ответ #4 : 17.02.2014, 22:21:15 »
Спасибо Eholov за данный хак, и извиняюсь за поднятие старой темы, но хотелось бы внести свои 5 копеек, с которыми пришлось долго помучатся, а именно если у вас цены с НДС или есть скидки, тогда оно будет будет сортировать по обычной цене, а не по окончательной, что бы это исправить:
1) Ни в коем случае не удаляем вот этот IF, так как он сортирует потом массив товаров по ценам
Код: php
	if( $orderby == 'product_price' ) {
if ($DescOrderBy == "DESC") {
// using krsort when the Array must be sorted reverse (Descending Order)
krsort($products, SORT_NUMERIC);
} else {
// using ksort when the Array must be sorted in ascending order 
ksort($products, SORT_NUMERIC);
}
}
2) Для того что бы сортировать именно по последней цене, с учетом НДС, либо скидки, то надо найти код, примерно 409 строка и получить чистую цену уже с учетом НДС и скидки:
Код: php
    // Price: xx.xx EUR
    if (_SHOW_PRICES == '1' && $auth['show_prices']) {
      $product_price = $ps_product->show_price( $db_browse->f("product_id") );
    }
    else {
      $product_price = "";
    }
и заменить её на это
Код: php
    // Price: xx.xx EUR
    if (_SHOW_PRICES == '1' && $auth['show_prices']) {
      $product_price = $ps_product->show_price( $db_browse->f("product_id") );
/*Так как результат функции в HTML и она используется много где, то пришлось использовать такой костыль
$pattern = "|<span class=\"vmRoduct_price-real\">(.*?)</span>|is";
preg_match_all($pattern, $product_price, $clear_product_price);
$clear_product_price = (int)(substr($clear_product_price[1][0], 0, -8));
/*End*/
    }
    else {
      $product_price = "";
    }

3) Дальше необходимо найти код:
Код: php
// i is the index for the array holding all products, we need to show. to allow sorting by discounted price,
    // we need to use the price as first part of the index name!
    $i = $product_price_raw['product_price'] . '_' . ++$counter;
И заменить на:
Код: php
$i = $clear_product_price . '_' . ++$counter;

Всё теперь будет корректно сортировать по цене, даже если у вас НДС или скидки...
*

kungurskiy

  • Осваиваюсь на форуме
  • 34
  • 1 / 0
Re: Товар в конец списка
« Ответ #5 : 21.06.2018, 08:49:12 »
Добрый день как настроить отображение новых добавленных товаров в верху списка, а не внизу как это делает  VM, по умолчанию. Смог добавить только дополнительный параметр сортировки "Дата поступления товара". Но этот вариант не совсем верен т.к. по умолчанию все равно ранее добавленные товары оказываются впереди списка.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Почему перемешивается товар в категории VirtueMart

Автор ruslanmunteanu

Ответов: 0
Просмотров: 946
Последний ответ 05.07.2017, 18:10:13
от ruslanmunteanu
Увеличение картинки, вместо ссылки на товар - в плагине VM1 Product Snapshot

Автор sashgera

Ответов: 4
Просмотров: 1257
Последний ответ 16.03.2015, 22:43:59
от sashgera
yootheme unity не отображается товар, категории (virtuemart, joomshoping)

Автор zrkyuseo

Ответов: 0
Просмотров: 1171
Последний ответ 26.12.2014, 13:08:58
от zrkyuseo
модуль: примерить товар в интерьере

Автор abdulidze

Ответов: 3
Просмотров: 2069
Последний ответ 28.11.2014, 18:23:33
от primerdver
При добавлении цены товара в VirtueMart сам товар пропал

Автор EfimPimenov

Ответов: 1
Просмотров: 1007
Последний ответ 21.10.2014, 19:34:39
от EfimPimenov