2016-11-10 10 views
1

Я новичок в magento2. Я использую Magento ver. 2.1.1Сортировка по цене от низкого до высокого и от высокого к низкому в списке продуктов magento2

Я хочу добавить пользовательские price low to high и price high to low в список сортировки по выпадающему списку продуктов.

Я не получил страницу toolbar.phtml. Также у меня не было никаких вещей, связанных с этим в google.

Если у кого-нибудь есть идеи, пожалуйста, помогите мне. Спасибо!

+0

Любой пожалуйста Giv Мне нужна идея сделать это как – kingp

ответ

-1

Шаг 1: Создание плагинов в

приложение/код/​​Vendor/модуля/и т.д./di.xml

<?xml version="1.0"?> 
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd"> 

    <type name="Magento\Catalog\Block\Product\ProductList\Toolbar"> 
     <plugin name="custom_custom_block_toolbar" type="Vendor\Module\Plugin\Catalog\Block\Toolbar" /> 
    </type> 

    <type name="Magento\Catalog\Model\Config"> 
     <plugin name="custom_catalog_model_config" type="Vendor\Module\Plugin\Catalog\Model\Config" /> 
    </type> 

</config> 

Шаг 2: Созданиеconfig.php in

приложение/код/​​Vendor/модуль/плагин/Каталог/Модель/config.php

<?php 

namespace Vendor\Module\Plugin\Catalog\Model; 

class Config 
{ 
    public function afterGetAttributeUsedForSortByArray(
    \Magento\Catalog\Model\Config $catalogConfig, 
    $options 
    ) { 

     $options['low_to_high'] = __('Price - Low To High'); 
     $options['high_to_low'] = __('Price - High To Low'); 
     return $options; 

    } 

} 

Шаг 3: СозданиеToolbar.php в

приложения/код/​​Vendor /Module/Plugin/Catalog/Block/Toolbar.php

<?php 
namespace Vendor\Module\Plugin\Catalog\Block; 

class Toolbar 
{ 

    /** 
    * Plugin 
    * 
    * @param \Magento\Catalog\Block\Product\ProductList\Toolbar $subject 
    * @param \Closure $proceed 
    * @param \Magento\Framework\Data\Collection $collection 
    * @return \Magento\Catalog\Block\Product\ProductList\Toolbar 
    */ 
    public function aroundSetCollection(
    \Magento\Catalog\Block\Product\ProductList\Toolbar $subject, 
    \Closure $proceed, 
    $collection 
    ) { 
    $currentOrder = $subject->getCurrentOrder(); 
    $result = $proceed($collection); 

    if ($currentOrder) { 
     if ($currentOrder == 'high_to_low') { 
      $subject->getCollection()->setOrder('price', 'desc'); 
     } elseif ($currentOrder == 'low_to_high') { 
      $subject->getCollection()->setOrder('price', 'asc'); 
     } 
    } 

    return $result; 
    } 

}