如何在 Shopware 6 中进行模板多重继承?
How to do a template multiple inheritance in Shopware 6?
我有两个插件:
- 继承 Shopware 基础的 XYZ 插件 template/block 和
覆盖它。
- 我想继承 XYZ 覆盖的 ABC 插件 template/block 和
覆盖它。
如何在 Shopware 6 中执行此操作?
tabs.html.twig
文件中的 XYZ 插件代码:
{% sw_extends '@Storefront/storefront/page/product-detail/tabs.html.twig' %}
{% block page_product_detail_tabs_inner %}
<div class="detail-accordion" id="accordion">
{% block page_product_detail_accordion_description %}
<div class="card card-accordion card-accordion-description">
{% block page_product_detail_accordion_description_header %}
{# My custom logic #}
{% endblock %}
</div>
{% endblock %}
</div>
{% endblock %}
tabs.html.twig
文件中的 ABC 插件代码:
{% sw_extends '../../../../../../../XYZ/src/Resources/views/storefront/page/product-detail/tabs.html.twig' %}
{% block page_product_detail_tabs_inner %}
{{ parent() }}
<div class="detail-accordion" id="accordion">
{% block page_product_detail_accordion_description %}
<div class="card card-accordion card-accordion-description">
{% block page_product_detail_accordion_description_header %}
{# My new custom logic to append #}
{% endblock %}
</div>
{% endblock %}
</div>
{% endblock %}
很遗憾,此代码无效。
{% sw_extends '../../../../../../../XYZ/src/Resources/views/storefront/page/product-detail/tabs.html.twig' %}
这是错误的。
在这两种情况下,您都必须扩展 @Storefront
,并确保您的插件以正确的顺序加载。
因此,如果您首先加载插件 ABC
,那么 XYZ
会自动扩展 ABC
.
的模板
更新答案
插件按安装日期的顺序加载(当前为 v6.4)。
我有两个插件:
- 继承 Shopware 基础的 XYZ 插件 template/block 和 覆盖它。
- 我想继承 XYZ 覆盖的 ABC 插件 template/block 和 覆盖它。
如何在 Shopware 6 中执行此操作?
tabs.html.twig
文件中的 XYZ 插件代码:
{% sw_extends '@Storefront/storefront/page/product-detail/tabs.html.twig' %}
{% block page_product_detail_tabs_inner %}
<div class="detail-accordion" id="accordion">
{% block page_product_detail_accordion_description %}
<div class="card card-accordion card-accordion-description">
{% block page_product_detail_accordion_description_header %}
{# My custom logic #}
{% endblock %}
</div>
{% endblock %}
</div>
{% endblock %}
tabs.html.twig
文件中的 ABC 插件代码:
{% sw_extends '../../../../../../../XYZ/src/Resources/views/storefront/page/product-detail/tabs.html.twig' %}
{% block page_product_detail_tabs_inner %}
{{ parent() }}
<div class="detail-accordion" id="accordion">
{% block page_product_detail_accordion_description %}
<div class="card card-accordion card-accordion-description">
{% block page_product_detail_accordion_description_header %}
{# My new custom logic to append #}
{% endblock %}
</div>
{% endblock %}
</div>
{% endblock %}
很遗憾,此代码无效。
{% sw_extends '../../../../../../../XYZ/src/Resources/views/storefront/page/product-detail/tabs.html.twig' %}
这是错误的。
在这两种情况下,您都必须扩展 @Storefront
,并确保您的插件以正确的顺序加载。
因此,如果您首先加载插件 ABC
,那么 XYZ
会自动扩展 ABC
.
更新答案 插件按安装日期的顺序加载(当前为 v6.4)。