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

1 Like

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: