Heiko_2Heiko_2 MemberComments: 59 Received thanks: 5 Member since: June 2017

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

 

 

 

Answers

  • Moritz NaczenskiMoritz Naczenski AdministratorsComments: 7824 Received thanks: 2288 Member since: September 2013

    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.

  • Heiko_2Heiko_2 MemberComments: 59 Received thanks: 5 Member since: June 2017

    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

Sign In or Register to comment.