
![]()
... und wollen sich deshalb direkt nach dem Öffnen der Seite einloggen können. Daher versteht es sich von selbst, das Login-Formular direkt ins Design respektive Template einzubinden. Im Internet kursieren viele, manchmal halbe, manchmal unpassende Lösungen, weshalb ich hier eine Möglichkeit aufzeigen möchte, die
Und so gehts...

Bei Typo3 < 4.2.x muss die Extention newloginbox installiert werden
Wird eine Typo3-Version älter als 4.2.x verwandt, so muss vorher die Erweiterung newloginbox installiert werden. Andernfalls ist die Extension bereits Bestandteil von Typo3 4.2.x+ und damit obsolet.
Zuerst gilt es einen Marker (hier Subparts) in das HTML-Template einzubauen. Um es später mittels CSS besser bearbeiten zu können, setzen wir alles in ein div-Block.
<div class="login">
<!-- ###LOGIN### start -->
Hier erscheint das Login-Formular im Template
<!-- ###LOGIN### stop -->
</div>
Nun muss folgendes TypoScript im Setup eingebunden werden (einfach unter den bestehenden TypoScript-Code einfügen):
[usergroup=*]
page.10.subparts.LOGIN = TEXT
page.10.subparts.LOGIN.value(
<form action="index.php?id=1" method="post">
Angemeldet als: <span><!--###USERNAME###--></span>
<br />
<input class="submit logout" type="submit" name="submit" value="Abmelden" />
<input type="hidden" name="logintype" value="logout"/>
<input type="hidden" name="pid" value="15" />
</form>
)
[else]
page.10.subparts.LOGIN = TEXT
page.10.subparts.LOGIN.value (
<form action="index.php?id=4" method="post" onsubmit="superchallenge_pass(this); return true;">
<input class="input" type="text" id="user" name="user" value="Benutzername" onfocus="if (this.value == 'Benutzername') this.value = '';"/>
<input class="input" type="password" id="pass" name="pass" value="password" onfocus="if (this.value == 'password') this.value = '';"/>
<input class="submit" type="submit" name="submit" value="Anmelden"/>
<input type="hidden" name="logintype" value="login"/>
<input type="hidden" name="pid" value="15" />
<input type="hidden" name="redirect_url" value="index.php?id=4" />
</form>
)
[GLOBAL]
Zur Erklärung: Es handelt sich um eine simple If-Else-Bedingung: Ist der FE-User angemeldet, wird das Formular zum Logout angezeigt (oben); ist er es nicht, so erscheint das Login-Formular (unten).

Nun muss nur noch im <from>-Tag die ID der Seite eingegeben werden, die nach dem erfolgreichen Login angezeigt werden soll (hier: 4, 2x) bzw. nach erfolgreichen Logout (hier: 1, 1x). Außerdem noch die ID des Sysfolders, in dem die Frontend-Usern (Web-Seiten-Benutzern) erstellt wurden: Dazu beim <input>-Befehl (Attribut name="pid") die Sysfolder-ID im value-Attribut einsetzen (hier: 15, 2x).
Beim Integrieren des Codes in dein vorhandenes TypoScript gilt: Bedingungen (if-else) dürfen nicht in geschweiften Klammern stehen; in ihnen muss man immer vom root ausgehen. Also immer:
page.10 {
...
# anderer TypoScript-Code
...
}
[usergroup=*]
page.10.subparts.LOGIN = TEXT
page.10.subparts.LOGIN.value(
...
)
[else]
...
und nicht (!):
page.10 {
...
# anderer TypoScript-Code
...
[usergroup=*]
subparts.LOGIN = TEXT
subparts.LOGIN.value(
...
)
[else]
...
}
Das ist ein gern gemachter Fehler. ;-)
Dank der CSS-classes, die wir unserem HTML-Formular zugewiesen haben, können wir dieses nun einfach formatieren. Hier ein Designvorschlag:
/* ------ LOGIN ----- */
div.login{
font-size:12px;
color:#587e94;
text-align:center;
margin:20px 0px 5px 0px;
padding:10px 5px 0px 5px;
}
div.login span{
font-style:italic;
margin-bottom:3px;
}
div.login input.logout{
margin-top:5px;
}
/* ----- Input-Felder ----- */
div.login input.input{
background: url(http://www.philipphauer.de/tut/typo3-login-template/bg-input.jpg) repeat-x;
border:1px solid #759fb7;
border-right:1px solid #476d82;
border-bottom:1px solid #476d82;
width:160px;
color:#79a5be;
margin-bottom:1px;
}
div.login input.submit{
width:162px;
background: url(http://www.philipphauer.de/img/bg-suchbutton.jpg) repeat-x;
border:1px solid #759fb7;
border-right:1px solid #476d82;
border-bottom:1px solid #476d82;
}
Voila! Jetzt noch den Typo3-Cache löschen und das Login/Logout-Formular ist fester Bestandteil im Seitenlayout.
Kommentare
danke fuer die anleitung im allgemeinen......
Benutze allerdings templavoila und frage mich wie ich den typo script code anpassen muss.
kann mir da jemand helfen?
danke
vielen dank für deine anleitung, alles super. eine frage: kann man sich nur über den logout button abmelden? wäre schön, wenn man beim wechsel auf eine andere page auch automatisch abgemeldet wird. wenn ich nämlich den zurück button von exploren klicke bin ich noch immer drin.
Viele Grüße
Walter
Danke für die Anleitung. Leider bekomme ich immer nur das Login angezeigt und nicht das Logout Formular. Anmelden kann ich mich aber es zeigt mir keinen Status an.
Jemand eine Lösung?
in den Seiteneigenschaften der Seite unter Zugriff musst du noch die Benutzergruppe angeben, die die Berechtigung haben soll, die Seite anzuschauen.
Gruß
Sebastian
Hab nur ein kleines Problem: Gebe ich falsche Logindaten an oder drücke einfach so auf den Anmelde-Button, ohne irgendetwas auszufüllen, werde ich trotzdem auf die geschützte Seite weitergeleitet (jedoch ohne Inhalte).
Kann man dieses Verhalten unterbinden?
Grüße, Phil
es funktioniert auch mit Typo3 4.4 wunderbar!
ich bin ein Typo3-Anfänger und ich möchte dich fragen: ist dieses Verfahren noch gültig für die neue typo3 version (v4.4)?
Ich meine, ich sehe dass du viele HTML-Code im Setup eingesetzt hast. Gibt es keine andere Möglichkeit um mehr HTML Code in der Template (.html Datei) einzusetzen?
Vielen Dank für dein Beispiel. Sehr interessant!
Gruüsse aus der Schweiz,
Davide
Danke für das Tut. Es funktioniert hervorragend. Da kann sich ein großer Teil der Typo3 Tutorialgemeinde ein Beispiel dran nehmen.
Beste Grüße aus dem verregenten Norden.
Jens
Seite: 1 -