Update eines Einkaufswelten-Plugins

Guten Morgen liebe Community :slight_smile:

Ich habe mir für ein Projekt ein kleines Einkaufswelten-Plugin geschrieben, welches am Ende einen Banner mit verschiedenen Box-Teasern ausgibt.
Das klappt auch alles soweit ganz gut, allerdings wollte ich eben eine neue Einstellungs-Komponente einfügen und bekomme mit, dass er bei einem Update die Felder, wo ich das Einkaufswelten-Element einstellen kann, nicht updatet.

Beim install habe ich folgendes verwendet:

public function install(InstallContext $context)
    {
        $component = $this->createEmotionComponent($context->getPlugin(), [
            'name' => 'Ein Beispiel Plugin',
            'xtype' => 'emotion-components-base',
            'template' => 'beispiel',
            'cls' => 'beispiel',
            'description' => 'Ein Beispiel-Plugin zum spielen'
        ]);


        $component->createDisplayField([
            'name' => 'info_1',
            'fieldLabel' => 'Hinweis',
            'defaultValue' => 'Bitte gib mir eine kurze Einleitung zum Plugin',
            'supportText' => 'Ja und die ist ein Support-Text',
            'allowBlank' => true
        ]);

        $component->createMediaField([
            'name' => 'bild_waehlen',
            'fieldLabel' => 'Hintergrundbild',
            'supportText' => 'Bitte wählen Sie die das Hintergrundbild',
            'allowBlank' => true
        ]);

Jetzt wollte ich im nächsten Update aber gerne zwischen den letzten beiden Komponenten noch ein Text-Feld einfügen.

Beispielhaft so:

public function install(InstallContext $context)
    {
        $component = $this->createEmotionComponent($context->getPlugin(), [
            'name' => 'Ein Beispiel Plugin',
            'xtype' => 'emotion-components-base',
            'template' => 'beispiel',
            'cls' => 'beispiel',
            'description' => 'Ein Beispiel-Plugin zum spielen'
        ]);


        $component->createDisplayField([
            'name' => 'info_1',
            'fieldLabel' => 'Hinweis',
            'defaultValue' => 'Bitte gib mir eine kurze Einleitung zum Plugin',
            'supportText' => 'Ja und die ist ein Support-Text',
            'allowBlank' => true
        ]);

/** ANFANG DES EINZUFÜGENDEN CODES */

        $component->createTextField([
            'name' => 'slider_headline',
            'fieldLabel' => 'Überschrift',
            'defaultValue' => 'Überschrift',
            'supportText' => 'Bitte tragen Sie hier die Überschrift ein',
            'allowBlank' => true
        ]);
/** ENDE DES EINZUFÜGENDEN CODES */

        $component->createMediaField([
            'name' => 'bild_waehlen',
            'fieldLabel' => 'Hintergrundbild',
            'supportText' => 'Bitte wählen Sie die das Hintergrundbild',
            'allowBlank' => true
        ]);

Bei der Update-Funktion verwende ich folgendes:

public function update(UpdateContext $context)
    {
        $context->scheduleClearCache(InstallContext::CACHE_LIST_DEFAULT);
    }

 

Ich hoffe sehr, dass ihr mir weiterhelfen könnt  Foot-in-Mouth

 

Liebe Grüße

Benjamin

Hey,

hier musst Du momentan leider noch mit einem einfachen SQL Query arbeiten und das Element in der Update Methode „händisch“ hinzufügen.

LG,
Phil

Hi Phil,

danke für deine Rückmeldung. 

Hast du mal ein Beispiel für mich, dass ich das mal anschaulich verstehen kann?  Blush

 

Danke :slight_smile:

Ok, habs geschafft. Vielen Dank nochmal :slight_smile: