Redirect nach Login/Logout in newloginbox

Problem: nach dem Login/Logout soll man auf einer bestimmten Seite landen, das Formular zu einloggen befindet sich jedoch auf allen Seiten. Oder man hat eine Vorschaltseite mit Sprachauswahl und wenn man eingeloggt in einem geschlossenen Bereich surft und sich dann ausloggt, dann landet man auf eben dieser Vorschaltseite, was nicht schön ist.
Das Loginformular kann über das Template in TypoScript inkludiert werden oder auch als ein Content-Element von einer bestimmten Seite eingefügt werden. Hauptsache über TypoScript, geht auch nicht anders, wenn man es auf jeder Seite haben möchte.
Es gibt im Template für newloginbox ein verstecktes Feld mit dem Namen redirect, das Problem ist, dass es leer ist. Es gibt einige Extensions, die eine Umleitung anbieten, das Problem ist, dass die Seite auf die umgeleitet wird, im GET-Parameter angegeben werden muss. Das ist manchmal schwierig. Oder es gibt eine Extension, auf der man dem Benutzer oder der Gruppe eine Seite zuweisen kann, das löst aber nicht das Problem beim Logout.
Meine Lösung ist daher: Aus dem Template den Form-Tag entfernen (mit Start- und Endtag) und das versteckte Feld zum Redirect. Dann das Feld über TypoScript wieder hinzufügen. Das Loginformular kann man als COA aufbauen. 10 ist der Form-Starttag, 20 die newloginbox, 30 das versteckte Feld und 40 der schließende Formtag. Über typolink kann man die URL in das Action-Attribut im Form-Tag und in das Value-Attribut des versteckten Feldes reinschreiben. Über Conditions definiert man dann einen anderen Wert im Action-Attribut, wenn jemand sich ausloggt, so kann man die Benutzer dann auf eine bestimmte Seite schicken. Ungefähr so…

temp = COA
temp.10 = TEXT
temp.10.typolink.parameter.data = TSFE:id
temp.10.typolink.returnLast = url
temp.10.typolink.wrap =

temp.20 < plugin.newloginbox temp.30 = TEXT temp.30.typolink.parameter = {$pageOnLogin} temp.30.wrap =

[fe_user = *]
temp.10.typolink.parameter.data >
temp.10.typolink.parameter = {$pageOnLogout}
[global]

Kommentare sind geschlossen.