2016-11-10 9 views
1

私はmagento2で新品です。私はMagento verを使用しています。 2.1.1商品の詳細magento2

price low to highprice high to lowを商品リストページの[並べ替え基準]ドロップダウンに追加します。

私はtoolbar.phtmlページを取得しませんでした。また、私はこれについてgoogleで何かを得ることはなかった。

誰かが何か考えている場合は、私を助けてください。 ありがとう!

+0

誰でもGIVください私には緊急としてこれをする考えがあります – kingp

答えて

-1

ステップ1:

アプリケーション/コード/ベンダー/モジュールにプラグインを作成するの/ etc/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

アプリ/コード/ベンダーにToolbar.phpを作成:アプリ/コード/ベンダー/モジュール/プラグイン/カタログ/モデル/ 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 /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; 
    } 

} 
関連する問題