Magento从后端类别布局创建自定义模板

时间:2016-01-27 04:12:10

标签: magento

我需要创建一个包含产品类别的自定义模板。这意味着在一个类别下应显示有限数量的相关产品。在另一类别下,应显示类别相关产品。还应该有一个标签显示这些类别名称。我需要添加一个链接来查看更多产品。

我是通过类别布局(后端)来做到这一点的。我添加了以下代码并尝试了。

    <reference name="header">
         <block type="core/template" name="header_nav" as="headerNav" template="page/html/headernav.phtml">
    </block>
    </reference>
    <reference name="content">
          <block type="catalog/product_list" name="product_list_flowers"  template="catalog/product/list.phtml">  
    <action method="setData"><key>category_id</key><value>178</value></action>
<action method="setColumnCount"><count>4</count></action>
          </block>

    <block type="catalog/product_list" name="product_list_cakes"  template="catalog/product/list.phtml">  
    <action method="setData"><key>category_id</key><value>179</value></action>
<action method="setColumnCount"><count>4</count></action>
          </block>     
    </reference>

正在显示类别产品。但这并不限制产品数量。标题也没有显示。我无法添加此页面的链接。

任何人都可以帮助我。谢谢。

1 个答案:

答案 0 :(得分:0)

为了能够对Product Collection设置限制(因为在您的情况下,因类别而异),请在下面的实现中找到:

    <reference name="content">
      <block type="catalog/product_list_flowers" name="product_list_flowers"  template="catalog/product/list/flowers.phtml">  
        <action method="setData"><key>category_id</key><value>178</value></action>
        <action method="setColumnCount"><count>4</count></action>
      </block>

      <block type="catalog/product_list_cakes" name="product_list_cakes"  template="catalog/product/list/cakes.phtml">  
         <action method="setData"><key>category_id</key><value>179</value></action>
         <action method="setColumnCount"><count>4</count></action>
      </block>     
     </reference>

以上代码将继续显示包含产品的4列。

创建块文件(如果这与类别不同)

app/code/local/Namespace/Module/Block/Catalog/Product/List/Flowers.php
app/code/local/Namespace/Module/Block/Catalog/Product/List/Cakes.php

覆盖 List.php (如果所有类别都需要相同的产品限制)

app/code/local/Namespace/Module/Block/Catalog/Product/List.php

    <reference name="content">
      <block type="catalog/product_list" name="product_list_flowers"  template="catalog/product/list/flowers.phtml">  
        <action method="setData"><key>category_id</key><value>178</value></action>
        <action method="setColumnCount"><count>4</count></action>
      </block>

      <block type="catalog/product_list" name="product_list_cakes"  template="catalog/product/list/cakes.phtml">  
         <action method="setData"><key>category_id</key><value>179</value></action>
         <action method="setColumnCount"><count>4</count></action>
      </block>     
     </reference>

在第87行下方,在此公共函数_getProductCollection()

     ...
      $this->_productCollection = $layer->getProductCollection();
       $this->_productCollection->setPageSize(10); //this will display only 10 products
     ...

如果我能够正确理解它,请告诉我。

快乐编码......