CMS Block defaultConfig erweitern

Hallo,

ich wollte für einen Shop ein neues Formular anlegen, dafür habe ich das “sw-cms-el-config-form” mit der Component.override Funktion erweitert, funktioniert alles wunderbar.

Jetzt wollte ich ein neues Feld in die Einstellungen hinzufügen und in die config.MEINWERT.value speichern.

Jetzt zu meinen Fragen.

  • Wie erweitere ich die defaultConfig von einem CMS Element?
  • Die Komponenten für das CMS werden über den Service erstellt, dass ist bei dem Formular nicht anders, gibt es eine Möglichkeit diese anpassen ohne eine neue Komponente anzulegen?

Hier der Code den ich für das Überschreiben genommen hätte:

import { Component } from 'src/core/shopware';

Component.override('sw-cms-el-form', {
    defaultConfig: {
        typeSelect: {
            source: 'static',
            value: []
        }
    }
});

 

Ich glaube diese Frage gab es schon mehrmals

Schau mal hier: https://forum.shopware.com/discussion/comment/265122/#Comment_265122

und hier: https://forum.shopware.com/discussion/comment/264923/#Comment_264923

und hier: https://forum.shopware.com/discussion/62857/erweitern-eines-custom-cms-elements-oder-blocks

 

Ich verstehe die Antwort von Shopware im ersten Thread nur halb, aber ich glaube es ist nicht direkt möglich. Berichtige mich, falls ich falsch liegen sollte :) 

Hallo, ich hatte gerade dasselbe Problem und habe es folgendermaßen gelöst.

Man kann die defaultConfig überschreiben, indem man die Element-Konfiguration aus der Registry holt, ändert und überschreibt, z.B.

In deiner index.js

const formElementConfig = Shopware.Service('cmsService').getCmsElementConfigByName('form');

formElementConfig.defaultConfig['yourCustomConfigValue'] = {
    source: 'static',
    value: ''
}

Shopware.Service('cmsService').registerCmsElement(formElementConfig);