我正在创建一个自定义模块,我在产品视图页面中添加了一个按钮(默认文件)。我已将按钮代码插入以下文件中
app\design\frontend\base\default\template\catalog\product\view.phtml
按钮显示&但每次更新Magento时,上面的文件都会被替换,所以我的代码被丢弃了。有没有办法在我的自定义模块中修改或扩展或注入模板编码?我是否需要覆盖核心块或某些内容?
答案 0 :(得分:8)
为您的模块提供布局文件:
...
<frontend>
<layout>
<updates>
<YOUR_MODULE>
<file>YOURMODULE.xml</file>
</YOUR_MODULE>
</updates>
</layout>
</frontend>
...
在基本主题的layout/YOURMODULE.xml
文件中:
<layout version="1.0">
<catalog_product_view>
<reference name="product.info">
<action method="setTemplate"><name>YOURMODULE/product/view.phtml</name></action>
</reference>
</catalog_product_view>
</layout>
将修改后的view.phtml
复制到新目录template/YOURMODULE/product/
template/catalog/product/view.phtml
。下载您的模块的任何人都可能希望对该模板进行自己的更改,因此您还应该包含有关哪个文件已更改以及在何处找到它的说明。由于view.phtml
经常被美学家和其他模块所改变,因此更改其中一个子模板会更好一点 - 哪一个取决于你的按钮所在的位置。
作为奖励,在extrahint
类型的价格之后有一个名为core/text_list
的块 - 它没有模板,因此您在使用template path hints时通常会错过它。您可以安全地添加任意数量的模板,而无需更改任何现有模板:
<layout version="1.0">
<catalog_product_view>
<reference name="product.info.extrahint">
<block type="core/template" name="YOUR.CUSTOM.BLOCK" template="YOUR/CUSTOM/TEMPLATE.phtml" />
</reference>
</catalog_product_view>
</layout>
只有在价格对您有用之后才有用。可以安全追加的其他块是选项和容器区域,但它们仅针对具有选项的产品显示。
答案 1 :(得分:1)
问题是您是在app / design / frontend / base / default中安装它。
您需要在另一个目录中创建此目录的副本,例如app / design / frontend / default / yoursite。
答案 2 :(得分:1)
您无法将自定义扩展程序构建为依赖于显示错误计划的默认视图。您应该克隆此模板或扩展它,并有办法启用和禁用您的功能。如果你的模块实现模板或者有办法修改其他模板,那么必须有“设计师指南”。