Ich habe ein Problem mit Magento-Nachrichten. Ich baue ein benutzerdefiniertes Modul, das in der Lage sein sollte, den Zugang zu einigen Teilen des Ladens zu beschränken. Ich habe einen Beobachter erstellt, der sich in controller_action_predispatch
Ereignis einklinkt und prüft, ob aktuelle Anfrage vom Benutzer zugegriffen werden kann. Wenn auf die Aktion nicht zugegriffen werden kann, leitet der Beobachter den Benutzer um und setzt die Fehlerinformation. Ich möchte die Weiterleitungs-URL auf die Seite setzen, von der der Kunde kommt, um zu vermeiden, dass der gesamte Shop durchsucht wird. Ich schaue mir die HTTP_REFERER
an und benutze sie wenn sie eingestellt ist, sonst leite ich den Kunden auf die Homepage um. Das Problem ist, dass im späteren Fall (Homepage Redirect) alles gut funktioniert, aber wenn ich URL basierend auf dem Referer setze, sehe ich keine Fehlermeldung im Nachrichtenfeld.Magento Nachrichten nach Umleitung verlieren
Der Code vom Beobachter ($name
Variable ist ein String):
Mage::getSingleton('core/session')->addError('Acces to '.$name.' section is denied');
$url = Mage::helper('core/http')->getHttpReferer() ? Mage::helper('core/http')->getHttpReferer() : Mage::getUrl();
Mage::app()->getResponse()->setRedirect($url);
Was ich interessant fand, ist, dass wenn ich eine Änderung in der Beobachter-Datei tun und speichern, dann wird die nächste Anforderung, die fehlschlägt und Wird zu Referer weitergeleitet URL zeigt die Fehlerinformationen an, aber alle nachfolgenden verlieren die Nachrichten.
Ich dachte, dass das Problem in der vollständigen URL und meine lokale Installation ist (I .local Domäne bin mit), aber so habe ich versucht, das Hinzufügen
$url = str_replace(Mage::getBaseUrl(), '/', $url);
aber das half nicht.
Ich versuchte auch Redirect mit PHP header()
Funktion ohne Ergebnis auch.
Der gesamte Cache ist deaktiviert. Der Workflow, der das Problem löst sich wie folgt:
- Ich bin auf der berührbaren Seite gehen (zum Beispiel/Kunden/Konto)
- Klicken Sie auf Warenkorb Link (Wagen für dieses Konto ist deaktiviert)
- Zurück zu/Kunden/Konto und die Fehlermeldung wird
- Klicken Sie auf Warenkorb Link angezeigt wieder
- Zurück zur/Kunden/Konto aber keine Fehlermeldung
Jeder Tipp, wo Sie suchen können, wird geschätzt.
Können Sie alle Ihre Caches (+ FPC wenn Magento EE) deaktivieren, um zu sehen, ob es ein Cache-Problem ist? Übrigens, ich habe nicht alle Ihre Erklärungen verstanden, Sie haben verstanden, dass Sitzungsfehlermeldungen nach der ersten Anzeige gelöscht werden? –
Ich erweiterte die Beschreibung, hoffe es ist jetzt klar. – Zefiryn