首页>Magento>source

我已将分层导航块移动到内容部分,但我无法弄清楚如何定位块.我只能在页面顶部或底部显示它.我需要在产品列表之前和工具栏之后.到目前为止,我的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>

但这似乎不起作用.有什么建议吗?

谢谢

最新回答
  • 2019-12-5
    1 #

    您的分层导航仅显示在页面底部或顶部的原因是您将块添加到错误的块"级别"。

    您将块添加到块 content   只有两个直接的儿童区: category.products   和 product.tooltip .因此,您只能在顶部,这两个块之间或底部添加块。

    How to move the layered navigation between the product list toolbar and the product list

    将此代码添加到您的 layout 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>
    

    这将是 move   左列 to the content column的分层导航块   无需重新创建类等.你可以看到我作为块 product_list的孩子插入了块

    如果您现在调用该页面,您将看到根本不显示分层导航.那是因为反对 content   阻止, product_list   块默认情况下不输出所有子块.您必须自己在模板文件中回显该块。

    Copy   app/design/frontend/base/default/template/catalog/product/list.phtml   (如果你使用另一个作为起点,用你的基本主题替换base / default)到你的主题并告诉Magento output   直接在第一个工具栏之后的分层导航:

    <?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 ?>
    

    你会得到这样的东西,可以从这里继续:

  • magento2:删除magento 2中的所有订单,发票,贷记凭证和货件
  • Magento Page Speed