0

Magento v. 1.6.2.0 を使用しています。カテゴリ レイヤード ナビゲーション フィルターをサイトに水平に表示し、1 列のページ レイアウトを使用するように設定しました。カテゴリ画像も設定しました。

したがって、そのカテゴリ カテゴリに移動すると、カタログ リストのフロント要素が次の順序で上から下に表示されます。

レイヤード ナビゲーション フィルター > カテゴリ イメージ > 製品のグリッド。

そして、その順序を次のように変更したいと思います。

カテゴリ イメージ > レイヤード Navigarion フィルター > 製品のグリッド。

catalog.xml ファイルを変更しようとしましたが、機能させることができませんでした。

 ...
 <catalog_category_layered translate="label">
        <label>Catalog Category (Anchor)</label>
        <reference name="left">
            <block type="catalog/layer_view" name="catalog.leftnav" after="currency" template="catalog/layer/view.phtml"/>
        </reference>
        <reference name="content">
            <block type="catalog/category_view" name="category.products" template="catalog/category/view.phtml">
                <block type="catalog/product_list" name="product_list" template="catalog/product/list.phtml">
                    <!-- <action method="addReviewSummaryTemplate"><type>default</type><template>review/helper/su.phtml</template></action> -->
                    <block type="catalog/product_list_toolbar" name="product_list_toolbar"  template="catalog/product/list/toolbar.phtml">
                        <block type="page/html_pager" name="product_list_toolbar_pager"/>

 ...

これに対する良いアドバイスはありますか?

4

1 に答える 1

0

このブロックはすべてコンテンツ ブロックで奇数です。これは Mage_Core_Text_List タイプであり、コンテンツ内でブロックを順序付けます。次の関数でこの動作を確認できます。

protected function _toHtml()
{
    $this->setText('');
    foreach ($this->getSortedChildren() as $name) {
        $block = $this->getLayout()->getBlock($name);
        if (!$block) {
            Mage::throwException(Mage::helper('core')->__('Invalid block: %s', $name));
        }
        $this->addText($block->toHtml());
    }
    return parent::_toHtml();
}

ハイライト

$this->getSortedChildren()

このため、ブロックはコンテンツ ブロック内で順序付けされます。before after文で注文してみてはいかがでしょうか。

例えば:

<block .... as="layered" after="category.image"/>
<block .... as="category.image" before="-"/>
<block .... as="grid.product after="layered"/>
于 2012-08-07T07:53:38.790 に答える