Hallo zusammen,
ich bin bei einer Plugin Entwicklung auf das Problem gestossen, dass per Standardzuweisung eine Smarty Variable offenbar immer nur für das aktuell aufgerufene View gültig ist.
Folgender Hintergrund: Ich möchte zu jedem Zeitpunkt im Frontend abfragen ob eine ganz bestimmte Session Variable in der URL gesetzt wurde, ist dies der Fall, soll diese in eine globale Shopvariable (also Smarty in dem Fall) übernommen werden und für die Dauer des Vorgangs (auch über ein User Login hinaus!) erhalten bleiben, um diese zu einem späteren Zeitpunkt im Checkout Prozess wieder auffangen zu können. Da der User auch erst einmal nicht eingeloggt auf den Shop gelangen kann ist es wichtig, dass diese Variable immer abrufbar bleibt.
Genutzt habe ich folgenden Subscriber:
Enlight\_Controller\_Action\_PostDispatchSecure\_Frontend
Und orientiert habe ich mich an dem Beispiel aus der offiziellen Doku:
public function onPostDispatch(\Enlight_Controller_ActionEventArgs $args)
{
$args->getSubject()->View()->assign('sUserLoggedIn', Shopware()->Modules()->Admin()->sCheckUser());
}
Hierbei wird die Variable aber eben nur auf das aktuelle View gepackt und ist nach einem Reload der Seite, oder einem Klick auf einen anderen Bereich des Shops, sofort wieder weg. Ziel ist es, dass auch ohne \_GET Parameter in der URL, die Variable solange in Smarty nicht überschrieben wird, bis eine neue _GET Variable gefunden wird oder eben die Session abgelaufen ist.
An irgendeinem Punkt wird ja beim Aufbau einer neuen Seite der aktuelle Stand der Smarty Variablen gedumpt und neu generiert.
Ist es mir im Plugin möglich direkt dort einzuhaken?
Danke schonmal im Voraus!