Das Login-Formular von TYPO3 ist – auch in der Version, die ccs_styled_content erstellt, ein übler Tabellenverhau, den man sich schenken kann. besonders, wenn man das Login-Formular über ein Template einbinden und so auf jeder Seite verfügbar haben will, wirkt sich das störend aus: Was, wenn die Felder neben einander in einer schmalen Leiste eingebunden sein sollen? Oder in einem Randstreifen, etwa unterhalb der Navigation?
Login-Formular einbinden – quick and dirty
Es gibt eine Quick-and-Dirty-Methode: Einfach das Formular in der Template-Datei (z.B. meintemplate.htm) hart codieren:
- <form action=”20.0.html” method=”post” name=”login” enctype=”multipart/form-data”>Mein Login<br />
- <input type=”hidden” name=”logintype” value=”login”>
- <input type=”hidden” name=”pid” value=”15″ />
- Mitglied: <input type=”text” name=”user”>
- Passwort: <input type=”password” name=”pass”>
- <input type=”submit” name=”submit” value=”Login” class=”submit”>
- </form>
Form action verweist auf die Seite, zu der man nach dem Login springen möchte, also die erste Seite des passwortgeschützten Bereichs. Das hidden field “pid” nennt den Sysordner mit den Zugangsdaten der Frontend-User.
Sieht gut aus, erreicht maximale Gestaltungsmöglichkeiten, denn ich kann den Submit-Button mit einer Klasse versehen (class =”submit”) und separat von den Input-Feldern formatieren (z.B. weniger breit und mit Rahmen). Der Nachteil: So greifen wir nicht auf die erweiterten Funktionen des Login-Formulars zu, also z.B. die Überprüfung der Eingabe (wenn das Pflichtfeld “user” leer blieb) und die Ausgabe eines anderen Buttons “Logout”, wenn man sich eingelogged hat. Hier kommt die umständlichere, dafür aber funktionstüchtige Variante:
Login-Formular per Typoscript
Dafür überschreiben wir im Setup des Templates einige Werte, leeren ein paar andere, die überflüssig sind, und formatieren unsere Werte dann per CSS. Nicht vergessen: Hinterher noch auf einen Marker im Template legen, damit man das Formular auch angezeigt bekommt (page.10.marks.LOGIN < tt_content.login.20).
- #Login formatieren
- tt_content.login.20.hiddenFields.pid.value = 15
- tt_content.login.20.redirect = 20
- tt_content.login.20.stdWrap.wrap = Mein Login<br />
- tt_content.login.20.layout = ###LABEL### ###FIELD###
- tt_content.login.20.labelWrap.wrap =
- tt_content.login.20.dataArray.10.label.data >
- tt_content.login.20.dataArray.20.label.data >
- tt_content.login.20.dataArray.10.label = Mitglied
- tt_content.login.20.dataArray.20.label = Passwort
- tt_content.login.20.commentWrap.wrap =
- tt_content.login.20.REQ.labelWrap.wrap =
- tt_content.login.20.COMMENT >
- tt_content.login.20.COMMENT.layout = <span></span>
- tt_content.login.20.badMess = Pflichtfelder ausfüllen:
- tt_content.login.20.image = file
- tt_content.login.20.image.file = fileadmin/Admin/Login.gif
- [loginUser = *]
- tt_content.login.20.image = file
- tt_content.login.20.image.file = fileadmin/Admin/Logout.gif
- [GLOBAL]
Zeile 2: Angabe de Sysordners mit den FE-User-Daten
Zeile 3: Angabe der Zielseite (Homepage des passwortgeschützten Bereichs)
Zeile 4: Wrap aller Inhalte innerhalb des Formulars (hier für eine Überschrift genutzt)
Zeile 5: Layout von Feldbezeichnung und Feld (hier nur neben einander, kann per CSS mit input {disply:block} unter einander gestellt werden
Zeile 6: entfernt die innere Formatierung um die Feldbeschriftung
Zeile 7-10: entfernen die englische Beschriftung der beiden Felder und ersetzen sie durch eine Beschriftung unserer Wahl. Achtung, 7-8 sind nötig, sonst funktionieren 9-10 nicht. Überschreiben allein reicht nicht.
Zeile 11-12: entfernen Wraps für Kommentare (Hinweise nach dem Login) und Pflichtfeld-Beschriftungen
Zeile 13-14: Ich brauchte keine Information, die nach dem Login erscheint (Username und ein leeres Feld für Passwort). Auch hier reicht das Leeren nicht, ich habe es mit einem einfachen <span></span> überschrieben.
Zeile 15: Meldung, die erscheint, wenn man die Felder nicht ausfüllt.
Man kann auch noch mehr Werte überschreiben oder leeren. Grundsätzlich sind alle Elemente in eine Tabellenzelle gepackt, Labels noch einmal mit einem Absatz umgeben, der z.B. eine getrennte Formatierung von Beschriftungen für Pflichtfelder gegenüber anderen Feldern erlaubt. Meist braucht man aber nur ein Minimum an Optionen und kann sich so viel Code vom Hals schaffen. Ein Überblick über die default-Einstellungen der Loginbox tt_content.login findet sich – so man das statische Template eingebunden hat – im Template Analyzer EXT:css_styled_content/static ab Zeile 761, sonst natürlich im TSOB.
Submit-Button als Grafik ausgeben
Leider erlaubt der Einbau des Login-Formulars nicht, den Submit-Button eigenständig zu wrappen oder ihm eine Klasse zuzuweisen. Eine separate Formaterung mit CSS fällt damit flach. Man kann den Button aber durch eine Grafik ersetzen:
Zeile 16-21: tt_content.login.20.image ruft die Grafik auf, die man dem Submit-Button zuweist. Da wir für den Logout-Button eine andere Grafik brauchen, binden wir sie mit Conditions (Zeile 18-21) ein. Die Grafik Logout.gif wird nur angezeigt, wenn der User sich eingelogged hatte.
27. Januar 2012 um 15:41 Uhr
Leider wird auf diese Weise eine Loginbox erzeugt, die insbesondere das Passwort *unverschlüsselt* überträgt. Wie lässt sich erreichen, dass die FORM action https verwendet?
17. September 2008 um 08:42 Uhr
Hab hier noch ein andere Anleitung gefunden:
http://www.philipphauer.de/tut/typo3-login-template/
Ist anders als diese hier, aber läuft auch super!
mfg
Saenger
22. Juli 2008 um 20:38 Uhr
hi, habe eine sache mit der newloginbox, wo ich noh nix brauchbares gefunden habe. bei mir ist es so das der user nach login wieder auf die seite kommt, von der er sich eingeloggt hat. das funktioniert auch super, aber wenn man dann f5 drückt, um zu aktualisieren, kommt diese browsermeldung “um diese seite anzuzeigen, müssen die von firefox gesendeten daten erneut gesendet werden…”. das würde ich nun gerne wegbekommen, da es ja durchaus vorkommen kann, das man nah login mal refresht und so eine meldung irritiert dann ja irgendwo… hat da jemand ne idee womit das zusammenhängen könnte?
beste grüße, jonas
21. Mai 2008 um 13:38 Uhr
hallo nochmal,
hab noch ein weiteres problem möchte für den login und logout button auch gerne eine roll-over grafik festlegen.
wie geht denn sowas.
danke
lg
zahn
20. Mai 2008 um 20:49 Uhr
hallo
hab auch den typoscript code eingebunden und das funktioniert auch soweit.
jedoch wie kann ich das ganze mit css formatieren, denn ich weiß nicht wie ich die einzelnen elemente ansprechen kann, also do input felder und deren description.
sehe ich mir das ganze im firebug an ist die description nicht einmal ein -tag oder so und alle anderen sind nur input forms.
wie kann ich die einzelnen elemente mit css ansprechen, damit ich auch wirklich ein individuelles design erziele???
danke
lg
zahn
7. Mai 2008 um 07:20 Uhr
Ich habe den Vorschlag im Setup eingebunden. Wenn ich nun im Object Browser nachschaue, sind die Daten auch so wie im Typoscript angegeben hinterlegt. Beim Seitenaufruf habe ich allerdings noch die ursprünglichen Einträge im Template, sprich Tabelle, englische Beschriftung usw. Was mach ich falsch??
Die Eibindung des Login-Formulars funktioniert doch über den Marker. Das Login funktioniert soweit auch der Zugriff auf den SysOrdner und die Benutzerdaten klappt einwandfrei?!
Danke für euere Hilfe.
21. April 2008 um 14:32 Uhr
Ich hab hier mal nen Prob zum Login, wozu ich bis jetzt noch keinen Beitrag gefunden habeÂ
Ich habe den Login soweit konfiguriert pid für den SysFolder angegeben uswÂ
Wenn ich mich jetzt versuche im Frontend unter einem Usernamen anzumelden, wird nur das login-Formular angezeigt.
Das gleiche passiert auch wenn ich mich nicht korrekt unter einem existierendem Benutzer anmeldeÂ
Ich weiß echt nicht mehr weiter!
5. Dezember 2007 um 11:59 Uhr
Moin moin!
Ich hab hier mal nen Prob zum Login, wozu ich bis jetzt noch keinen Beitrag gefunden habe…
Ich habe den Login soweit konfiguriert pid für den SysFolder angegeben usw…
Wenn ich mich jetzt versuche im Frontend unter einem falschen Passwort bzw. Usernamen anzumelden, werde ich trozdem in der URL auf die korrekte uid=… weitergeleitet.
Aber der Inhalt der Zielseite wird nicht angezeigt, sondern das login-Formular.
Das gleiche passiert auch wenn ich mich korrekt unter einem existierendem Benutzer anmelde…
Ich weiß echt nicht mehr weiter!
23. Oktober 2007 um 16:12 Uhr
Ein Marker ist ein Platzhalter in einem HTML-Template, in das Du dann per Typoscript etwas hineinschiebst, z.B. die Navigation oder das Login-Formular. Im Klartext:
In deinem HTML-Template steht
###LOGIN###
Im Setup für das Template steht:
page.10.marks.LOGIN < tt_content.login.20
23. Oktober 2007 um 15:17 Uhr
Hallo, bin auch ein T3 newcommer, und habe nicht den Blassesten wo ich den obigen Quelltext einbauen muss, damit ich was angezeigt bekomme.
Was ist ein Marker ? Wie muss der aussehen ?
Über Hilfe würde ich mich ganz arg freuen !
Grüsse
hasi
3. Juni 2007 um 23:43 Uhr
hi leute, ich bin ein übelster anfänger, und brauche glaube ich echt eure hilfe.
Ich möchte das mit dem log in auch benutzen, habe mir auch das erweiterte login formular importiert, bekomme es aber nicht ans laufen, habe einen User SysFolder gebastelt, und dadrinnen die User sowie die Usergroups. rechte alles so vergeben wie man es in den Typo3 Dokumentation videos findet, aber es läuft nicht!!!
bin schon total verzweifelt.
vieleicht kann mir jemand helfen.
auf der Testseite von Typo3 (Quickstart Version 4.1.1) läuft der log in, und da kann ich auch mit den rechten herumspielen und so.
habe ich den SysFolder an der Falschen Stelle platziert? habe ich es nicht zugewiesen von wo der SysFolder ist?
über eine email würde ich mich RIESIG Freuen.
mfg
gabriel
28. Dezember 2006 um 18:17 Uhr
sorry hat noch etwas gefehlt
tt_content.login.10 = TEXT
LOGIN
tt_content.login.10.layout = ###LABEL### ###FIELD###
tt_content.login.10.labelWrap.wrap =
tt_content.login.10.dataArray.10.label.data >
tt_content.login.10.dataArray.20.label.data >
tt_content.login.10.dataArray.10.label = Mitglied
tt_content.login.10.dataArray.20.label = Passwort
tt_content.login.10.commentWrap.wrap =
tt_content.login.10.REQ.labelWrap.wrap =
tt_content.login.10.COMMENT >
tt_content.login.10.COMMENT.layout =
tt_content.login.10.badMess = Pflichtfelder ausfüllen:
tt_content.login.10.image = file
tt_content.login.10.image.file = fileadmin/Admin/Login.gif
[loginUser = *]
tt_content.login.10.image = file
tt_content.login.10.image.file = fileadmin/Admin/Logout.gif
[GLOBAL]
}
28. Dezember 2006 um 18:15 Uhr
hi ich habe versucht den login code in mein typo3 einzubinden es geht leider net
. bin leider nicht so der profi ist bestimmt nur ein kleiner fehler oder?
hier mein code
tt_content.login.10 = TEXT
LOGIN
tt_content.login.10.layout = ###LABEL### ###FIELD###
tt_content.login.10.labelWrap.wrap =
tt_content.login.10.dataArray.10.label.data >
tt_content.login.10.dataArray.20.label.data >
tt_content.login.10.dataArray.10.label = Mitglied
tt_content.login.10.dataArray.20.label = Passwort
tt_content.login.10.commentWrap.wrap =
tt_content.login.10.REQ.labelWrap.wrap =
tt_content.login.10.COMMENT >
tt_content.login.10.COMMENT.layout =
tt_content.login.10.badMess = Pflichtfelder ausfüllen:
tt_content.login.10.image = file
tt_content.login.10.image.file = fileadmin/Admin/Login.gif
[loginUser = *]
tt_content.login.10.image = file
tt_content.login.10.image.file = fileadmin/Admin/Logout.gif
[GLOBAL]
}
22. November 2006 um 12:56 Uhr
so kann man die tabelle um das formular entfernen:
tt_content.login.20.stdWrap >
der beitrag oben war sehr hilfreich, danke.
gruß
stoerte
31. August 2006 um 12:01 Uhr
Danke!
Ich hatte Probleme, in meiner Typo3 Seite ein Formular anzuzeigen – Keine Ahnung warum. Mit Hilfe Eures Tuts ist es mir nun doch gelungen.
Ich habe einen Link auf Euer Tut gesetzt, weil es richtig gut ist.
Grüße…
4. August 2006 um 07:00 Uhr
Leider kann ich nicht verfolgen, wieso die Tabelle nicht verschwindet. Mit tt_content.login.20.stdWrap.wrap = müßte z.B. die table-Definition geleert werden. Läßt sich wie gesagt im TSOB gut nachvollziehen und einstellen.
Styles für Label, Input usw: Ein schönes Tutorial für ccs-gestylte Formulare gibt es hier: http://www.css-tutorials.de/css/barrierefreiesformular/
und hier:
http://webstandard.kulando.de/post/2006/07/24/layout_fur_formulare
3. August 2006 um 18:53 Uhr
Hallo,
Ich stehe kurz vor der Finalisierung meinem ersten Typo3 Projekt … nur diese eine Sache mit der Login Box fehlt noch.
Ich habe die Anleitung zu erstellen der TS LoginBox befolgt. Leider bin ich die lästige Tabelle nicht los und verstehe nicht wie man den input Feldern (Label + Field) CSS zuweisen kann.
Vielleicht können Sie mir weiter helfen.
Vielen Dank
Andreas
24. Juli 2006 um 13:45 Uhr
Noch einfacher geht das Zuweisen einer CSS-Klasse über TypoScript:
tt_content.login.20.params.submit = class=”submit”
22. Juli 2006 um 22:07 Uhr
Das klappt auch ohne Grafik …
Du musst im Typo Script Object Browser einfach auf der Ebene “tt_content/login/FORM” den Wert “params.submit” anlegen und diesen mit z.b. class=”submit” füllen.
easy man