Follow along with the video below to see how to install our site as a web app on your home screen.
Примечание: This feature may not be available in some browsers.
Присоединяюсь. Пробовал много чего, все какие то недоработанныеSEF компонент
Пользуюсь вот этим пока все гудПрисоединяюсь. Пробовал много чего, все какие то недоработанные
case 'product_name':
$orderbyField = '`#__{vm}_product`.`product_in_stock` DESC, `#__{vm}_product_price`.`product_price`'; break;
Помоему в туда пишу.
Вобщем давным давно искал выпрашивал на форумах как сделать так чтобы:
В категории была сортировка по цене и по наличию одновременно.
Т.е. товар выводится сначала который есть в наличии + с сортировкой по цене от меньшего к большему.
И после этого товара (на 2, 3 и т.д. странице) чтоб выводился которого нет в наличии.
Вобщем вскрываем файл administrator\components\com_virtuemart\html\shop_browse_queries.php
и примерно на строке 46-47 ищем то что начинается на case 'product_name'
и заменяем на
Далее в админке ставим сортировку по умолчанию "по названию товара"PHP:case 'product_name': $orderbyField = '`#__{vm}_product`.`product_in_stock` DESC, `#__{vm}_product_price`.`product_price`'; break;
Все, готово)
З.Ы. Кнопка спасибо справа, реквизиты в подписи
switch( $orderby ) {
case 'product_list':
$orderbyField = '`#__{vm}_product_category_xref`.`product_list`'; break;
case 'product_name':
$orderbyField = '`#__{vm}_product`.`product_in_stock` DESC, `#__{vm}_product`.`product_name`'; break;
case 'product_price':
$orderbyField = '`#__{vm}_product_price`.`product_price`'; break;
case 'product_sku':
$orderbyField = '`#__{vm}_product`.`product_in_stock` DESC, `#__{vm}_product`.`product_sku`'; break;
case 'product_cdate':
$orderbyField = '`#__{vm}_product`.`product_in_stock` DESC, `#__{vm}_product`.`cdate`'; break;
default:
$orderbyField = '`#__{vm}_product`.`product_in_stock` DESC, `#__{vm}_product`.`product_name`'; break;
}
Все верно, товары в первую очередь и отображаются только те которые в наличии.Ну в таком случае не проще ли априори сделать, чтобы сортировалось по наличию со всеми видами сортировок. Я думаю клиенту важнее в первую очередь видеть товары в наличии. То есть просто в конце switch выбора вида сортировок в administrator\components\com_virtuemart\html\shop_browse_queries.php добавитьКод:$orderbyField .= ' ,`#__{vm}_product`.`product_in_stock` DESC' ;
Код:$orderbyField .= ' ,`#__{vm}_product`.`product_in_stock` DESC' ;
Все конечно отлично, только вот у меня многих товаров 10-15, а многих 1-2-4, так вот оно берет всегда в начало отображения те товары, которых больше всего и их сортирует по имени, а потом берет товары на 1 меньше и их сортирует и так далее, пока в конце не выдаст товары в которых 0 на складе.
Это очень нарушает общий вид.
Можно сделать такую же сортировку? но без привязки к количеству, то есть чтобы если больше 1и больше товаров на складе, то все сортировало по имени (не зависимо от количества штук) а если 0, то выводило их уже в конце
switch( $orderby ) {
case 'product_list':
$orderbyField .= '`#__{vm}_product_category_xref`.`product_list`'; break;
case 'product_name':
$orderbyField = '`#__{vm}_product`.`product_in_stock` = 0 ASC, ';
$orderbyField .= '`#__{vm}_product`.`product_name`'; break;
case 'product_price':
$orderbyField .= '`#__{vm}_product_price`.`product_price`'; break;
case 'product_sku':
$orderbyField = '`#__{vm}_product`.`product_in_stock` = 0 ASC, ';
$orderbyField .= '`#__{vm}_product`.`product_sku`'; break;
case 'product_cdate':
$orderbyField = '`#__{vm}_product`.`product_in_stock` = 0 ASC, ';
$orderbyField .= '`#__{vm}_product`.`cdate`'; break;
default:
$orderbyField = '`#__{vm}_product`.`product_in_stock` = 0 ASC, ';
$orderbyField .= '`#__{vm}_product`.`product_name`'; break;
}