2011-10-30 19 views
1

デフォルトでは、利用可能な商品フィルタが左側のサイドバーに表示されます。しかし、代わりに商品リストの上にそれらを表示したいと思います。Magento:商品フィルタを移動

<p class="block-subtitle"><?php echo $this->__('Shopping Options') ?></p> 
<dl id="narrow-by-list"> 
    <?php $_filters = $this->getFilters() ?> 
    <?php foreach ($_filters as $_filter): ?> 
     <?php if($_filter->getItemsCount()): ?> 
      <dt><?php echo $this->__($_filter->getName()) ?></dt> 
      <dd><?php echo $_filter->getHtml() ?></dd> 
     <?php endif; ?> 
    <?php endforeach; ?> 
</dl> 

しかし、どうやらそれを:

は、私は単純に /template/catalog/product/list.phtml/template/catalog/layer/view.phtmlから、次のコードをコピーしてみましたそのようには機能しません。どうすればいいですか?

ありがとうございます!

+0

は、デザイナーのガイドです:http://www.magentocommerce.com/wiki/4_-_themes_and_template_customization/0 _-_ theming_in_magento/designs-for-magento –

答えて

5

フィルターテンプレートを使用するブロック(phpクラス)を、それらのフィルターを含めるクラスの子にする必要があります。これはレイアウトXMLで行われます。それが表示するようにするために、あなたは、単にあなたのカスタムリストテンプレート内<?php echo $this->getChildHtml('catalog.leftnav') ?>を呼び出すことができます上記を使用して

<?xml version="1.0" ?> 
<layout> 
    <catalog_category_layered> 
     <!-- remove from left block --> 
     <reference name="left"> 
      <action method="unsetChild"> 
       <child>catalog.leftnav</child> 
      </action> 
     </reference> 

     <!-- add as child to product list block --> 
     <reference name="product_list"> 
      <action method="insert"> 
       <child>catalog.leftnav</child> 
      </action> 
     </reference> 
    </catalog_category_layered> 
</layout> 

:あなたのテーマのレイアウトフォルダにlocal.xmlファイルで

は、次の操作を行います。あなたはどちらのスタイル、それはCSSを使用することができ、またはあなたが上記のcatalog_category_layeredノード内にこれを追加することによって、そのテンプレートを変更することができます。ここでは

 <reference name="catalog.leftnav"> 
      <action method="setTemplate"> 
       <child>path/to/template.phtml</child> 
      </action> 
     </reference> 
関連する問題