【问题标题】:Magento: How to Override View TemplateMagento:如何覆盖视图模板
【发布时间】:2011-05-25 15:31:42
【问题描述】:

我想显示带有自定义主题的订单发票页面,但我不想重写与其关联的所有应用程序代码(块、助手等)。从用户的角度来看,它应该是这样工作的:

  • 用户使用 URL“../custom-account/orders/”访问自定义“订单历史”页面。
  • 他们点击订单历史记录列表中的“查看发票”链接,然后转到“../custom-account/orders/invoices/order_id/1”。
  • 页面加载自定义视图,其内容与“../sales/account/view/order_id/1”几乎完全相同 - 但外观和感觉(和导航)不同。

凭借 Magento 系统的灵活性,这似乎应该很容易实现,但我无法确切地弄清楚我需要做什么。我真的不想为了获得不同的 UI 而覆盖所有具有完全相同功能的各种块和模型。

有什么想法吗?

感谢您提供的任何帮助...

【问题讨论】:

  • 你的意思是你不想为这个功能写一个全新的主题?您现在使用的是自定义主题吗?
  • 我应该指出,我只在一个更大的团队项目中处理一个模块 - 与主题方面没有太大关系。正在使用的主题是 .../Local/Default/Default - 自定义页面显示的是 2-column-right 布局,不包括默认导航。如果我链接其中一个内置页面(例如查看订单页面),它会显示原始的 2 列左布局和默认导航。理想情况下,我要做的就是使用核心版本中稍作修改的 *.phtml 文件。

标签: php magento


【解决方案1】:

我不知道你是否已经弄清楚了。但希望这个解决方案会有所帮助。 就像你说你使用 fontend/default/default/templates 一样,你需要创建一个与 base/default/template 结构相同的文件夹,并将你想要重写的文件复制粘贴到这个文件夹中。做你想做的改变。 Magento 应该读取这个文件而不是 base/default/tmeplate

但是如果你已经使用了一个主题,那么尝试在你的 app/design/frontend/default//templates 中做这件事

如果你有 2-col-left 和 2-col-right 的布局问题。那么我建议在你的前端/默认/默认/布局/sales.xml中检查它 检查标签 那么你需要编写这段代码

<reference name="root">
                 <action method="setTemplate"><template>page/<layout_file_name>.phtml</template></action>
</reference>

理想情况下,这应该在 2-col-left 布局上运行。

希望这会有所帮助,如果我帮助了你,请告诉我

:)SAM

【讨论】:

  • 这真的很有用——我确信会有一个很好的方法来实现这一点。我会记住的。不幸的是,现在有点晚了:我最终基于原件编写了自己的块/控制器功能(嘿,我让它按照我想要的方式工作,所以还不错)......
  • 对你有好处。我刚开始回答问题。现在我了解 5% 的 magento :)
  • 完全有用的 SAM :)
猜你喜欢
  • 1970-01-01
  • 2018-06-02
  • 2016-05-18
  • 1970-01-01
  • 1970-01-01
  • 2019-11-23
  • 2012-07-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多