Shopware Administration Component Template lässt sich nicht überschreiben

Hallo zusammen,
Um einen Erlebniswelten Seiten-Typ hinzuzufügen versuche ich gerade die Shopware Component ‘sw-cms-create-wizard’ zu überschreiben mit einer Template Anpassung:

Meine main.js

import template from './extension/sw-cms-create-wizard/sw-cms-create-wizard.html.twig';
Shopware.Component.override('sw-cms-create-wizard', template);

Meine sw-cms-create-wizard.html.twig:

{% sw_extends 'administration/src/module/sw-cms/component/sw-cms-create-wizard/sw-cms-create-wizard.twig.html' %}

{% block sw_cms_create_wizard_page_type %}
    
        
            
            {{ $tc('sw-cms.detail.label.pageTypeShopPage') }}
        

        
            
            {{ $tc('sw-cms.detail.label.pageTypeLandingpage') }}
        

        
            
            {{ $tc('sw-cms.detail.label.pageTypeCategory') }}
        

        
            
            Lexikon
        
{% endblock %}

Bekomme nach Kompilierung folgende Fehlermeldung im Browser:


component.factory.js?376d:188 Uncaught TypeError: Cannot create property 'name' on string '{% sw_extends 'administration/src/module/sw-cms/component/sw-cms-create-wizard/sw-cms-create-wizard.twig.html' %}

{% block sw_cms_create_wizard_page_type %}
    
        
            
            {{ $tc('sw-cms.detail.label.pageTypeShopPage') }}
        

        
            
            {{ $tc('sw-cms.detail.label.pageTypeLandingpage') }}
        

        
            
            {{ $tc('sw-cms.detail.label.pageTypeCategory') }}
        

        
            
            Lexikon
        
{% endblock %}'
    at Object.override (component.factory.js?376d:188)
    at eval (main.js?aa82:36)
    at Module.ITr1 (xxxxx-theme.js:1201)
    at __webpack_require__ (runtime.js:786)
    at fn (runtime.js:151)
    at Object.3 (xxxxx-theme.js:309)
    at __webpack_require__ (runtime.js:786)
    at checkDeferredModules (runtime.js:46)
    at Array.webpackJsonpCallback [as push] (runtime.js:33)
    at xxxxx-theme.js:1

Die Vue Komponente an sich konnte ich super überschreiben bisher, doch an dem Template hakt es jetzt. Jemand eine Idee?
{% sw_extends 'administration/src/module/sw-cms/component/sw-cms-create-wizard/sw-cms-create-wizard.twig.html' %}

das gehört da nicht rein :wink:

Habe es rausgenommen aber bekomme die selbe Fehlermeldung nur ohne den sw_extends Teil

wahrscheinlich geschweifte Klammern vergessen:

const { Component } = Shopware;

import template from './index.html.twig';

Component.override('xyz', {
    template
});

und das Template sollte idealerweise auch im selben Ordner liegen, wie die index.js

zudem müsstest du den Block extenden:

{% block sw_cms_create_wizard_page_type_options %}
    {% parent %}
    
          
          Lexikon
    
{% endblock %}

 

1 Like