Virtuemart 1.1.4 - сортування товарів за наявністю.

Інтернет-магазин Virtuemart. Підтримка Joomla 1.5 - Joomla 2.5

Virtuemart 1.1.4 - сортування товарів за наявністю.

Повідомлення gruz » 25 травня 2010, 16:08

В стандартному VirtueMart при перегляді категорії на сайті є сортування за назвою, ціною тощо. Треба додати сортування за наявністю (in stock).
Зробимо це засобами шаблона, щоби не змінювати файли ядра VirtueMart

1. Робимо у /components/com_virtuemart/themes/YOURTEMPLATE/ теку user_class
2. У теку /components/com_virtuemart/themes/YOURTEMPLATE/user_class/ копіюємо файл /components/com_virtuemart/html/shop_browse_queries.php
3. У адміністративній частині Компоненти-VirtueMart-Налаштування-Безпека-Дозволити підключення розшрених класів з директорії теми Virtuemart? - ставимо галочку і зберігаємо конфігурацію (див додаток). Це дозволить нам використати наш файл shop_browse_queries.php з /components/com_virtuemart/themes/YOURTEMPLATE/user_class/shop_browse_queries.php
4. У файлі
/components/com_virtuemart/themes/YOURTEMPLATE/templates/browse/includes/browse_orderbyfields.tpl.php
Перед
Код: Виділити все
</select>

Додаємо:
Код: Виділити все
        <option value="product_in_stock" <?php echo $orderby=="product_in_stock" ? "selected=\"selected\"" : "";?>>
        <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_IN_STOCK') ?></option>


Це дає нам додаткову опцію для вибору на сторінці категорії. Але сама її наявність не дає ще магазину зрозуміти, що від нього вимагається.

5. У файлі /components/com_virtuemart/themes/YOURTEMPLATE/user_class/shop_browse_queries.php
Міняємо:
Код: Виділити все
switch( $orderby ) {
   case 'product_list':
      $orderbyField = '`#__{vm}_product_category_xref`.`product_list`'; break;
   case 'product_name':
      $orderbyField = '`#__{vm}_product`.`product_name`'; break;
   case 'product_price':
      $orderbyField = '`#__{vm}_product_price`.`product_price`'; break;
   case 'product_sku':
      $orderbyField = '`#__{vm}_product`.`product_sku`'; break;
   case 'product_cdate':
      $orderbyField = '`#__{vm}_product`.`cdate`'; break;
   default:
      $orderbyField = '`#__{vm}_product`.`product_name`'; break;
}

На
Код: Виділити все
switch( $orderby ) {
   case 'product_in_stock':
      $orderbyField = '`#__{vm}_product`.`product_in_stock`'; break;
   case 'product_list':
      $orderbyField = '`#__{vm}_product_category_xref`.`product_list`'; break;
   case 'product_name':
      $orderbyField = '`#__{vm}_product`.`product_name`'; break;
   case 'product_price':
      $orderbyField = '`#__{vm}_product_price`.`product_price`'; break;
   case 'product_sku':
      $orderbyField = '`#__{vm}_product`.`product_sku`'; break;
   case 'product_cdate':
      $orderbyField = '`#__{vm}_product`.`cdate`'; break;
   default:
      $orderbyField = '`#__{vm}_product`.`product_name`'; break;
}


Все.

http://www.joomla.org.ua/porady/53-virtuemart/273-virtuemart-114-sortuvannja-tovariv-za-najavnistju
Приєднані файли
vm.png
Я вимушений був піти з цього форуму, бо ненависть адмінів до "конкуруючого", на їх думку, ресурсу joomla.org.ua вища за здоровий глуз. На їх думку ліпше не допомогти в форумі, ніж допомогти з посилкою на joomla.org.ua
Аватар користувача
gruz
Користувач
Користувач
 
Повідомлення: 584
З нами з: 19 червня 2008, 17:09
Звідки: Прип'ять
Репутація: 1

google adsense
 

Повернутись до Virtuemart

Хто зараз онлайн

Зараз переглядають цей форум: Немає зареєстрованих користувачів і 0 гостей

cron