2

我创建了一个自定义模块,该模块将属性添加到 magento 类别并在我的类别页面上显示。

起初,我编辑了 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\' 块内的 \'product_list\' 之上。

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

提前致谢!


有任何想法吗?

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

我当前的代码

配置.xml:

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

阅读更多.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>
4

1 回答 1

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块。这是可以进入模块的代码config.xml

<config>
    <frontend>
        <layout>
            <updates>
                <module_identifier>
                    <file>module_layout_file.xml</file>
                </module_identifier>
            </updates>
        </layout>
    </frontend> 
</config>
于 2013-04-13T17:50:15.297 回答