Plugin greift direkt nach der Installation nicht auf die Freitextfelder zu

Hallo zusammen,

 

ich habe ein Plugin entwickelt, welches soweit auch ganz gut funktioniert. Ich hänge gerade nur noch an einem Problem fest.

Das Plugin erstellt bei der Installation mehrere Freitextfelder in der Einkaufswelt.

Wenn ich das Frontend mit einer Einkaufswelt aufrufe, dann greift er nicht auf die Freitextfelder zu. Das Plugin löscht nach der Installation auch den Cache und das Theme wird neu kompiliert.

Ich muss nach der Plugin-Installation immer noch explizit den Cache-Ordner manuell beim Webhoster löschen, damit er die neuen Freitextfelder hat und ich damit arbeiten kann.

Gibt es da irgendein Funktionsaufruf den ich nach der Plugininstallation nutzen kann, um das Problem nicht mehr zu haben?

 

Gruß Heiko

 

 

 

Vielleicht bist du im falschen Scope?
Die Einkaufswelten kommen ja per Widget Call, da sind bspw. die Variablen im Listing garnicht verfügbar, sondern nur in den Templates der Einkaufswelten selbst.

Hi Moritz,

den Inhalt der Freitextfelder brauche ich schon etwas eher und nicht erst in den Templates der Einkaufswelten.
Deswegen habe ich hier einen modifier eingebaut und lese mir die notwendigen Daten zur benötigten Zeit aus der Datenbank aus:

function smarty_modifier_getDetails($value, $format = array()){
    if (is_numeric($value)) {
        $id = (int)$value;
        $detailQuery = Shopware()->Models()->getRepository('Shopware\Models\Emotion\Emotion')->getEmotionDetailQuery($id);
        $data = $detailQuery->getOneOrNullResult(\Doctrine\ORM\AbstractQuery::HYDRATE_ARRAY);
            return $data['attribute'];
        }
    }

Und in der Variablen $data befinen sich die neuen Felder noch nicht. Das passiert erst, wenn ich den Ordner-Cache manuell lösche.
Wenn ich die Seite dann neu lade, dann zeigt er sie mir an und ich kann damit arbeiten.
Es reicht auch nicht aus, wenn ich einfach im Backend den Cache lösche und das Theme kompiliere.

 

Gruß Heiko

Hallo,

ich muss das Thema noch mal aufgreifen, da ich dafür noch keine Lösung gefunden habe.

Wie schon geschrieben, wenn ich das Plugin installiere und ich lade die Einkaufswelt im Frontend, dann greift er nicht auf die erstellten Freitextfelder zu, erst wenn ich explizit den Cache-Ordner lösche.

Wenn ich das Plugin deinstalliere und ich bearbeite die Einkaufswelt erneut, dann kommt das Meldungsfenster mit einem schwerwiegenden Fehler.
Hier versucht das System ein SQL-Statement auszuführen, wobei er auf Spalten zugreift, die jetzt nicht mehr existieren.

Wenn ich den Cache-Ordner lösche, dann funktioniert es wieder einwandfrei.

Gibt es eine Möglichkeit in der Installations-/Deinstallationsroutine des Plugins irgendwie die Models neu zu laden, oder so was, so dass er dann mit der aktualisierten Datenbankstruktur arbeitet?

Liebe Grüße

 

Heiko