xml - 如何使用 XML Magento 覆盖 : catalog/product/view/type/default. phtml

标签 xml magento overwrite php

我有一个简单的模块,我想覆盖一些模板文件。

例如,当我想通过 XML 覆盖 view.phtml 时,我打开模块布局 XML 文件并添加:

<catalog_product_view>
  <reference name="product.info">
    <action method="setTemplate">
      <template>my-module-template-folder/catalog/product/view.phtml</template>
    </action>
  </reference>
</catalog_product_view>

但我也想覆盖:catalog/product/view/type/default.phtml,我已经尝试了任何方法,但没有任何效果。我的(简单的坏方法)想法只是添加另一个 <action method="setTemplate">对于新文件,但没有任何异常。

有人可以给我提供正确的代码吗?

最佳答案

或者您放置 catalog/product/view/type/default.phtml 的副本进入您的设计覆盖 app/design/frontend/default/<yourdesign>/template/ .
或者,您可以先在布局 XML 中使用取消设置,然后再重新定义要为其设置模板的 block 。

看看app/design/frontend/base/default/layout/catalog.xml:268

<PRODUCT_TYPE_simple translate="label" module="catalog">
    <label>Catalog Product View (Simple)</label>
    <reference name="product.info">
        <block type="catalog/product_view_type_simple" name="product.info.simple" as="product_type_data" template="catalog/product/view/type/default.phtml">
            <block type="core/text_list" name="product.info.simple.extra" as="product_type_data_extra" translate="label">
                <label>Product Extra Info</label>
            </block>
        </block>
    </reference>
</PRODUCT_TYPE_simple>

您可能需要引用product.info.simple PRODUCT_TYPE_simple内。

<PRODUCT_TYPE_simple>
    <reference name="product.info">
        <!-- <action method="unsetChild"><name>product.info.simple</name></action> -->
        <action method="setTemplate">
            <!-- app/design/frondend/default/<yourdesign>/template/my-module-template-folder/catalog/product/view.phtml -->
            <template>my-module-template-folder/catalog/product/view.phtml</template>
        </action>
    </reference>
</PRODUCT_TYPE_simple> 

回复后编辑:

感谢您的回复。只是为了分享有效的结果:

<PRODUCT_TYPE_simple>
    <reference name="product.info.simple">
        <action method="setTemplate">
            <template>my-modus-template-folder/catalog/product/view/type/default.phtml</template>
        </action>
    </reference>
</PRODUCT_TYPE_simple>

关于xml - 如何使用 XML Magento 覆盖 : catalog/product/view/type/default. phtml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17971804/

相关文章:

java - xml解析字符串匹配Java

c# - 你如何让一个 XmlWriter 写一个带有 xmlns 和 xml :lang? 的 HTML 标签

c# - 是否有可能在运行过程中出现 "talk"?

magento - 有条件地添加指向 Magento 的“我的帐户”页面的链接

magento静态 block 中的javascript幻灯片

c - C 中 write() 中的转义字符

c - 由 C libxml 和 libxslt 提供支持的 node.js

php - 如何在 magento 结帐过程之前设置自定义总计?

c++ - C++ 中的数组和覆盖 - 我可以重用同一个对象吗?

Objective-C cocoa 应用程序覆盖 JSON 文件