【问题标题】:Magento 2: How do I override a core template using a custom module for a single store?Magento 2:如何使用单个商店的自定义模块覆盖核心模板?
【发布时间】:2018-05-02 15:41:45
【问题描述】:

我想自定义/checkout/success 模板文件(success.phtml)。我构建了一个自定义模块,它覆盖核心vendor/magento/module-checkout/Block/Checkout/Onepage/Success 块并将数据添加到prepareData()。如果我在我的模块 (Vendor\Module\view\frontend\templates\success.phtml) 中添加模板文件,一切都很好:在 phtml 中加载和呈现附加数据没有问题。

问题是我只想为单个商店设置覆盖 - 所以通常我会将新模板放在 app/design/frontend/[theme]/[themename]/Magento_Checkout/templates/success.phtml 中 - 并期望这会胜过核心版本,但这似乎不是如果我已经有一个模块覆盖了该模板,则可以工作。

如何使用自定义模块 Block 配置主题/商店级别模板,并让其他商店使用核心模板?

【问题讨论】:

    标签: templates module overriding magento2


    【解决方案1】:

    想通了:在主题的目录结构中,您需要指定 扩展 模块名称,而不是核心模块名称。您仍然需要在模块中有一个带有块扩展名的模板文件(这看起来很笨重 - 为什么不默认使用核心?)所以我将核心模板复制到模块,然后能够将主题级别模板指定为 @ 987654321@ 而不是app/design/frontend/[themeparent]/[themename]/Magento_Checkout/templates/success.phtml

    所有主题都使用扩展模块模板(核心副本),特定主题使用它自己的模板。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      相关资源
      最近更新 更多