製品リストツールバーと製品リストの間に層状ナビゲーションブロックを移動する

magento.stackexchange https://magento.stackexchange.com/questions/7977

質問

レイヤードナビゲーションブロックをコンテンツセクションに移動しましたが、ブロックを配置する方法がわかりません。ページの最上部または下部に表示することしかできません。製品リストの前とツールバーの後に必要です。これまでのところ、私のXMLは次のように見えます:

 <reference name="content">
     <block type="catalog/layer_view" name="catalog.leftnav" before="product_list" after="product_list_toolbar" template="catalog/layer/view.phtml"/>
</reference>

しかし、それは機能していないようです。助言がありますか?

ありがとう

役に立ちましたか?

解決

レイヤードナビゲーションがページの下部または上部にのみ表示される理由は、間違ったブロック「レベル」にブロックを追加するためです。

ブロックをブロックに追加しました content 直接の子供ブロックは2つしかありません。 category.productsproduct.tooltip. 。したがって、これらの2つのブロックの間、または下部にブロックを追加できます。

製品リストツールバーと製品リストの間で層状ナビゲーションを移動する方法

このコードをあなたに追加します レイアウトXML:

<?xml version="1.0"?>
<layout version="0.1.0">
    <catalog_category_layered>
        <reference name="left">
            <action method="unsetChild"><alias>catalog.leftnav</alias></action>
        </reference>
        <reference name="product_list">
            <action method="insert"><blockName>catalog.leftnav</blockName></action>
        </reference>
    </catalog_category_layered>
</layout>

この意志 動く 左列から層状ナビゲーションブロック コンテンツ列に クラスなどを再作成することなく。あなたは私がブロックの子としてブロックを挿入したのを見ることができます product_list.

今すぐページに電話すると、層状ナビゲーションがまったく表示されないことがわかります。それは反対だからです content ブロック、 product_list ブロックはデフォルトですべての子ブロックを出力しません。テンプレートファイルでブロックを自分でエコーする必要があります。

コピー app/design/frontend/base/default/template/catalog/product/list.phtml (別のテーマを出発点として使用する場合、ベース/デフォルトをベーステーマに置き換えます)テーマにMagentoに伝えます 出力 最初のツールバーの直後に層状ナビゲーション:

<?php if(!$_productCollection->count()): ?>
<p class="note-msg"><?php echo $this->__('There are no products matching the selection.') ?></p>
<?php else: ?>
<div class="category-products">
    <?php echo $this->getToolbarHtml() ?>
    <?php echo $this->getChildHtml('catalog.leftnav'); /* THIS IS THE NEW LINE */ ?>
    <?php // List mode ?>

あなたはこのようなものを手に入れ、ここから続けることができます:

Layered navigation position between product list toolbar and product list

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top