Guten Morgen alle Zusammen.
Ich rufe eine eigenen Controller inkl. eines Parameters. z.b /controller/index/id/2/
Vorher wird im preDispatch() noch überprüft, ob dieser User eingeloggt ist, ansonsten leite ich Ihn zum Login
$this->admin = Shopware()->Modules()->Admin();
if (!$this->admin->sCheckUser()) {
return $this->redirect(
array(
'controller'=> 'account',
'action' => 'index',
'sTarget'=> 'controller',
'sTargetAction' => 'index'
)
);
}
Damit stelle ich sicher, dass dieser auch eingeloggt ist.
Wie aber schleife ich hier noch den Parameter /id/2 mit durch ? Diese Art der Umleitung geht ja nicht mit $this->forward.
Hi,
du kannst auch eigene Parameter im Array mitgeben. Beispiel:
return $this->redirect(
array(
'controller'=> 'account',
'action' => 'index',
'sTarget'=> 'controller',
'sTargetAction' => 'index',
'id' => 2
)
);
Gruß Heiner
Also es kommt das Loginfenster . in der URL steht korrekterweise
/account/index/sTarget/controller/sTargetAction/index/id/2
nach dem Login sprint der auf
/controller
NIcht so wie ich es mir vorgestellt habe
Ach so.
Ja, das geht nicht. Das Login gibt nur die sTarget-Parameter weiter.
Du könntest aber etwas in die Session schreiben:
Shopware()->Session()->meinWert = 1;
Und es dann nachher abfragen.
Gruß Heiner
Hallo @megadruck, Sie können Session Lösung benutzen wie Heiner hat gesagt. oder benutzen Sie die nächste hooks: loginAction fuktion in Account Controller mit replace hook ob request Ihr Controller custom redierct und die Orginal funktion mit die andere Controller.
und für nue Kunden:
Shopware\_Modules\_Admin\_SaveRegister\_Successful
Hier können Sie einfach redierct zu korrekte Url.
Viele Grüße,
Ahmad.
Danke für die Tips. ICh denke die Session Variante ist die bessere.