2013-04-13 12 views
2

我已经创建了一个自定义模块,它向magento类别添加一个属性,并在我的类别页面上显示此属性。Magento:是否有可能将块添加到类别视图上的其他块而无需编辑catalog.xml

首先,我编辑了category/view.phtml模板文件以直接检索我的属性。工作正常,但不是一个真正的解决方案,因为我不得不编辑默认的模板文件。

因此,我创建了自己的布局.phtml文件,它在类别页面上呈现自定义块。只要我使用'content'作为参考,这很好。

<catalog_category_default> 
     <reference name=\"content\">   
     <block type=\"categoryreadmore/readmore\" name=\"slim_readmore\"> 

事情是,这没有做我所需要的。我需要将我的块直接放在类别描述下!在catelog.xml中,如果在类别视图中找到了它。

<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\"> 

所以我需要的是我的块放在上面的\里面\”所属类别\”” category.products \”块。

这甚至可以不编辑catalog.xml吗?我想要一个单一包模块,而不必在每次安装模块时编辑默认模板。

在此先感谢!


任何想法?

我的假设是,这是不可能的,这将是一个遗憾

我当前的代码

config.xml文件:

<frontend> 
    <layout> 
    <updates> 
     <readmore> 
      <file>readmore.xml</file> 
     </readmore> 
    </updates> 
    </layout> 

readmore.xml

<catalog_category_default> 
    <reference name="content"> 
    <block type="categoryreadmore/readmore" name="slim_readmore" before="product_list" > 
     <action method="setTemplate"><template>readmore/readmore.phtml</template></action> 
    </block> 
    </reference> 
</catalog_category_default> 
+0

你有没有找到你的解决方案?我也在寻找它.. –

+0

我确实得到了很多,但从来没有发现如何使用它,而无需在模板文件中进行任何编辑。只是没有得到它使用下面的答案工作。我确实使用自定义创建的模块“读更多”,为每个可以管理文本和标签的分类添加额外的字段。让我知道你是否对代码感兴趣。 – user1281146

回答

1

绝对!模块可以定义他们自己的布局XML文件。在您的模块etc/config.xml文件中,定义您的布局文件的名称,并且该文件可以包含您想要创建的更新。将此文件放入app/design/frontend/base/default/layout。在新块中,您可以添加before参数以指定它将在product_list块之前呈现,如下所示:<block type=\"categoryreadmore/readmore\" name=\"slim_readmore\" before=\"product_list\">。 Magento足够聪明,知道在product_list块之前渲染此块。这里是你的模块的代码​​3210:

<config> 
    <frontend> 
     <layout> 
      <updates> 
       <module_identifier> 
        <file>module_layout_file.xml</file> 
       </module_identifier> 
      </updates> 
     </layout> 
    </frontend> 
</config> 
+0

嘿,谢谢你的答复,但它只是没有工作。我现在有自己的layout.xml文件。该块在该文件中声明。它出现了,但只是我想要的位置上。在我的答案下面查看我正在使用的当前代码 在catalog.xml中可以看到类别视图的结构是: - 类别视图。phtml块 - productlist块 我的块必须精确地在这两者之间。但是因为块是嵌套的,所以它总是放在categoryview.phtml – user1281146

+0

之前或之后。你好,你有什么想法吗?会如此赞赏 – user1281146

+0

没有想法?请 – user1281146

相关问题