Zum Inhalt springen

Login WO definiert

Erstellt am 29. Oktober 2003 · 8 Antworten · letzte Antwort am 30. Oktober 2003

Tags: Frage

Frank Herrlich ·

Morgen!
Wo wird eigentlich die LoginBox definiert?
Ich will dem Submit-Button des Loginbereichs eine Klasse zuweisen und über das Typoscript funzt das nicht.
Is echt wichtig! also wenn dass das jemand weiß, dann posted mal hierein!

thx

Frank Herrlich ·

Naja das mit dem Login oder Logout kommt ja so ziemlich aufs gleiche, da das ja alles ein Submit-Button ist. :o
Hast du ne Idee wie man das angehen könnte? Über das Typoscript klappt es zumindest nicht!
Man wüsste wissen wo das DataArray für Forms definiert wird, dann könnte man eventuell vorran kommen

sw-student ·

Hallo Frank,

vielleicht kannst mit folgendem Code was anfangen. Damit steuer ich den Login, hab halt kein Button, sondern ein Gif. Vielleicht lässt sich daraus auch ein Logout basteln?

### LOGIN BOX ###
[usergroup = *]
    temp.10  < tt_content.login
[else]
    temp.10 = TEXT 
    temp.10.data  = TSFE : id
    temp.10.wrap (
<form action="index.php?id=123&L=0" method="post"> 
<table border="0" cellpadding="0" cellspacing="0" height="1"><tr>
<input type="hidden" name="redirect_url" tabindex="1" value="index.php?id= |&L=0" />
<td align="center" style="padding-left: 5px;" width="82" height="1" valign="bottom"><p align="left">
<font size="1" color="#336699" face="Verdana">Benutzer:</font><font size="1" color="#F4F4F4">
<input name="user" type="text" id="user" class="feld" title="Benutzer" onfocus="if (this.value==this.defaultValue) this.value=''" value="" size="11" />
</font></td><center>
<td align="center" width="5" height="2" valign="middle" rowspan="2"> 
<font size="1" color="#F4F4F4">
<input name="I4" type="image" tabindex="3" title="Login" src="http://172.16.1.164/quickstart/fileadmin/templates/schloss.gif" alt="Login" align="absbottom" width="18" height="18" border="0" hspace="3" vspace>
</font></td></tr><tr></center>
<td align="center" width="82" height="1" style="padding-left: 5px;" valign="middle"> 
<p align="left">
<font color="#336699" size="1" face="Verdana">Kennwort:</font>
<font size="1" color="#F4F4F4">
<input name="pass" type="password" id="pass" class="feld" title="Kennwort" onfocus="if (this.value==this.defaultValue) this.value=''" value="" size="11" ></p>
</td><center></tr></table></center>
<input type="hidden" name="logintype" tabindex="2" value="login" > <input type="hidden" name="pid" value="126" > 
</form>
)
[end]

... der Logout ist der Standard, eben temp.10 < tt_content.login

Frank Herrlich ·

Hmm, da könnte ich mir das ja eigentlich auch in mein HTM-Template wieder schreiben, bloß dann erscheint die Logout-Sache nicht mehr(siehe bei dir)! ALso ich hab das bei mir bloß per Page im Setup eingebunden:

page.10{
......................
......................
subparts.LOGIN < tt_content.login
}

und mit

/////LOGIN-BOX///////////////////////////////////////////
tt_content.login.20{
layout=<tr valign=top width=100%><td align="left" style="width:100%; color:#2f318b; font-size:8pt; font-weight:bold; padding-left:5px; padding-right:5px;">###LABEL###</td></tr><tr style="width:100%;"><td style="padding-left:5px; padding-right:5px; padding-bottom:3px; width:100%; font-size:8pt;" class="menue_right_button2">###FIELD###</td></tr>
stdWrap.wrap=<table border=0 cellspacing=0 cellpadding=0 width="100%; margin-top:5px;"> | </table>
dataArray.40.wrap= <p class=menue_right_button2> | </p>
}
////////////////////////////////////////////////////////////

den Rest definiert! Das Problem ist nur dass ich so nicht an den Submit komme, weil durch den Array alle Elemente hintereinander eingetragen werden, ohne zwischen submit oder textfeld zu unterscheiden!

Frank Herrlich ·

Also sw-student!
Hoffe dass hilft dir weiter! Nach endlosem suchen durch die Typo3 - PHP - Scripte hab ich es endlich gefunden, da es ja per Typoscript nicht funktionierte!
Die Datei:

tslib/classtslib_content.php

ist für die Erstellung der Content-Elemente, Formulare etc. verantwortlich!
Dort findest du auf Zeile 1397 findest du dies:

$content = Array(
'<form action="'.$action.'" name="'.$formname.'" enctype="'.$GLOBALS["TYPO3_CONF_VARS"]["SYS"]["form_enctype"].'" method="'.($conf["method"]?$conf["method"]:"POST").'" target="'.($theRedirect?$LD["target"]:$LD_A["target"]).'"'.$validateForm.'>',
$hiddenfields.$content, '</form>'
	        );

Hier hast du die Möglichkeit bei der Erstellung eines Formulars mitzumischen!
Die Variable $action ist für die Aktion des Formulars verantwortlich und dies war meine eigentliche Frage anfangs, wie man diese Verändern könnte aus dem Typoscript her!?
Es geht auf jeden irgendwie mit type oder so, aber ich habs ni gefunden. Deshalb hab ich diese Datei jetzt für mich relevant umgeschrieben:

if($pid=87)//Fuer Login-Formular
{
$content = Array(
'<form action="index.php?id=15" name="'.$formname.'" enctype="'.$GLOBALS["TYPO3_CONF_VARS"]["SYS"]["form_enctype"].'" method="'.($conf["method"]?$conf["method"]:"POST").'" target="'.($theRedirect?$LD["target"]:$LD_A["target"]).'"'.$validateForm.'>',
$hiddenfields.$content,'</form>'
		);		
}
else
{
$content = Array(
'<form action="'.$action.'" name="'.$formname.'" enctype="'.$GLOBALS["TYPO3_CONF_VARS"]["SYS"]["form_enctype"].'" method="'.($conf["method"]?$conf["method"]:"POST").'" target="'.($theRedirect?$LD["target"]:$LD_A["target"]).'"'.$validateForm.'>',
$hiddenfields.$content,'</form>'
		);
}

Jetzt muss ich aber halt falls sich mein Userordner oder meine Zielseite ändert, dieses Script abändern und erneut uploaden, aber das ist halb so wild!
Viel Erfolg!

Frank Herrlich ·

Hmm das klappt zwar! Aber das gleiche wird auch für Mail-Formulare etc. gemacht!
Hätte wahrscheinlich keine Zuweisung in der If-Bedingung machen sollen :o
Also halt so:

if(pid == 87)
{
....

Vorher wird diese ID aber nirgends übergeben somit klappt das auch nicht!
Na toll

sw-student ·

Hallo Frank,

hab mir heut morgen auch schon etliche Gedanken gemacht. An die Tabelle kommt man ja ran. Ist es denn möglich einer Tabelle die Buttonformatierungen zuzuweisen? Also, alle Button, die innerhalb des <table tags stehen, sollen so und so formatiert werden.

<table input-class="button">

Geht sowas in die Richtung?

Frank Herrlich ·

Naja eigentlich nicht. Glaub ich zumindest. Du kannst es dank neuem CSS2.0 so machen, also per Style-Tag:

input[type="submit"]

oder

input[type="button"]

usw. ... machen!
Aber das unterstützt noch nicht jeder Browser und vorallem nicht der IE, den ja die meisten Visitors benutzen.
Das hab ich nun auch so gemacht!
Ich muss nun nur noch herausfinden wie ich auf die Aktion des Formulars zugreifen kann! Eigentlich soll das mit

tt_content.login.20{
.....
type = index.php?id=15
.....
}

funktionieren! Das wird dann aber bei mir nicht ins HTML übernommen, deshalb auch der Versuch mit der class.tslib_content.php! :o
Du kannst aber mit

tt_content.login.20{
.....
redirect = index.php?id=15
.....
}

ein Hiddenfield redirect deinem Formular hinzufügn! So müsste man eigentlich weitergeleitet werden! Das Redirect wird auch mit übernommen ins HTML aber das Weiterleiten klappt trotzdem nicht.
Ich bin echt am ende!