Zum Inhalt springen

New front end login box Frage

Erstellt am 2. April 2003 · 76 Antworten · letzte Antwort am 3. September 2006 · Seite 1 von 4

Tags: Frage

maxhb ·

Hi!
Vielleicht sehe ich den Wald vor lauter Bäumen nicht, aber wie kann man die Login-Box so in sein Template integrieren, dass sie auf jeder Seite erscheint? Bisher habe ich nur den Weg über ein Content-Element gefunden, aber das müsste ich ja wohl auf jeder Seite anlegen.

Hat jemand 'ne Idee :o

cu
maxhb

sacha ·

Hi,

wenn du die Better-Login Box so wie auf typo3.org einsetzen willst, beschreibe ich hier einen moeglichen Loesungsweg der bei mir gut funktioniert:

folgender Code kommt ins HTML-Template:

<div id="login">
        <a href="index.php?id=210" class="sidenavlink">Login</a>
        <form action="index.php?id=210" method="post">
                <div id="loginwrapper">
                        <input id="username" name="user" type="text" value="" title="Enter your username here" onfocus="if
(this.value==this.defaultValue) this.value=''" />
                        <br />
                        <input id="pwfield" name="pass" type="password" value="" title="Enter your password here" onfocus="if
(this.value==this.defaultValue) this.value=''" /><input type="image" src="fileadmin/images/layout/lock.gif" width="16" height="17" alt="Login"
title="Login" border="0" />
                        <input type="hidden" name="logintype" value="login" />
                        ###CPID###
                        <input type="hidden" name="pid" value="208" />
                </div>
        </form>
</div>

(pid 208 ist die pid meines frontend user Ordners und
index.php?id=210 ist die Seite, auf der ich die better login box eingebaut habe)

und nun der Code fuer das TS-Template:

#marker CPID mit der page-ID der aktuellen Seite fuellen
 marks.CPID = TEXT
 marks.CPID.data  = TSFE : id
 marks.CPID.wrap = <input type="hidden" name="redirect_url"  value="index.php?id= | " />

Was noch fehlt, ist das der Username und ein Logout-Symbol statt der Login-Box eingeblendet werden, wenn man sich angemeldet hat.

Das muesste recht einfach auf diese Art zu realisieren sein:

[usergroup = *]
Logout code & sonstiges TS here
[else]
Login code & sonstiges TS here
[global]

Rest des Templates

Die o. a. Sachen sollten auch mit der normalen Loginbox funktionieren.

Wenn du noch Fragen dazu hast, melde dich einfach.

Ciao,

Sacha

bk ·

hallo sacha,

danke für die gute anleitung. bei mir funktioniert alles bis auf

[usergroup = *]
Logout code & sonstiges TS here
[else]
Login code & sonstiges TS here
[global]

ich nutze marks und diese werden nicht mehr gefüllt, sobald ich die abfrage setzte.

könntest du bitte aufzeigen, wie der logout code aussehen sollte.

gracias 😃

mfg

bk

bk ·

ok, ich bin jetzt ein stück weiter...

1. habe bei mir ein marker ###LOGIN### im designtemplate angelegt.

2. im setup folgendes reingeschrieben:

[usergroup = *] 

temp.10  < tt_content.login


[else] 

temp.10 = HTML
temp.10.value (  

              <div id="login"> <a href="index.php?id=17" class="sidenavlink"> 
                Login</a> 
                <form action="index.php?id=17" method="post"> 
                  <div id="loginwrapper"> 
                    <table width="100%" border="0" cellspacing="0" cellpadding="0">
                      <tr> 
                        <td> <div align="center"> 
                            <input name="user" type="text" id="user" title="Enter your username here" onfocus="if 
(this.value==this.defaultValue) this.value=''" value="" size="5" />
                          </div></td>
                        <td> <div align="center"> 
                            <input name="pass" type="password" id="pass" title="Enter your password here" onfocus="if 
(this.value==this.defaultValue) this.value=''" value="" size="5" >
                          </div></td>
                        <td width="20" valign="bottom"> <input name="image" type="image" 
title="Login" src="fileadmin/.../lock.gif" alt="Login" align="bottom" width="16" height="17" border="0"> 
                        </td>
                      </tr>
                      <tr> 
                        <td colspan="3"><input type="hidden" name="logintype" value="login" > 
                        <input type="hidden" name="pid" value="18" > </td>
                      </tr>
                    </table>
                  </div> 
        </form> 
              </div>  
)

[global]

3. im "workondokument" bereich den marker gefüllt

marks.LOGIN < temp.10

funktioniert soweit, allerdings fehlt noch das redirect auf die akutelle seite. momentan wird man direkt auf die login-seite weitergeleitet.

mfg

bk

bk ·

hallo zusammen,

das redirect problem ist auch gelöst. manchmal ist es doch ganz einfach 😃

[usergroup = *] 

temp.10  < tt_content.login


[else] 

temp.10 = TEXT 
temp.10.data  = TSFE : id 
temp.10.wrap (
          <form action="index.php?id=17" method="post"> 
                   
                <table width=150 border="0" cellpadding="0" cellspacing="0">
                  <tr> 
                        
                    <td align="right">
                        <input name="user" type="text" id="user" title="Benutzername" onfocus="if (this.value==this.defaultValue) this.value=''" value="" size="4" />
                        <input name="pass" type="password" id="pass" title="Passwort" onfocus="if (this.value==this.defaultValue) this.value=''" value="" size="4" >
                        <input name="image" type="image" title="Login" src="fileadmin/.../lock.gif" alt="Login" align="absbottom" width="18" height="18" border="0"> </td>
                         <input type="hidden" name="redirect_url"  value="index.php?id= | " /> 
                      </tr>
                     </table> <input type="hidden" name="logintype" value="login" > <input type="hidden" name="pid" value="18" >
              </form> 
)

[global]

mfg

bk

sacha ·

Hi bk,

bk schrieb

das redirect problem ist auch gelöst. manchmal ist es doch ganz einfach

gruebel, aber du gibst der Variablen id hier:

<input type="hidden" name="redirect_url"  value="index.php?id= | " />

doch gar keinen Wert.

Ich verstehe nicht, wieso der Redirect zurueck auf die aufrufende Seite trotzdem funktioniert.

Werde ich mir mal genauer ansehen....

Hast du was dagegen, wenn ich das als howto auf typo3.org poste?

Ciao,

Sacha

bk ·

hi sacha,

das gesamte formular wird in "temp.10.wrap" um die zuvor erstellte id gewrappt.

klar kannst du gerne auf typo3 als howto reinstellen 🙂

maxhb ·

Hi BK und Sacha!
Das mit dem Einloggen klappt ausgesprochen gut, nur würde ich auch gern für das Logout einen eigenen Dialog benutzen. Habe also folgendes probiert:

[usergroup = *] 
temp.10 = TEXT
temp.10.data  = TSFE : id 
temp.10.wrap (  
<tr>
<td class="infobox">
     <form action="index.php?id=527" method="post"> 
    <input type="hidden" name="logintype" value="logout" > 
    <input type="submit" name="submit" value="logout" style="background-color:#FFFFFF; border:solid 1px #000000; font-size:10px;">
    <input type="hidden" name="pid" value="0" >
    <input type="hidden" name="redirect_url"  value="index.php?id= | " />
    </form>
</td> 
</tr> 
) 
[else] 
...
Login-Code
...
[global]

Damit kann man sich zwar in der Tat ausloggen, nur funktioniert das mit dem Redirect leider in keiner Weise :-(

Irgendwelche Ideen?

cu
maxhb

bk ·

hi max,

versuch mal folgendes:

temp.10 = TEXT 
temp.10.data  = TSFE : id 
temp.10.wrap (  
<tr> 
<td class="infobox"> 
     <form action="index.php?id= | " method="post"> 
    <input type="hidden" name="logintype" value="logout" > 
    <input type="submit" name="submit" value="logout" style="background-color:#FFFFFF; border:solid 1px #000000; font-size:10px;"> 
      </form> 
</td> 
</tr> 
)

mfg

bk

sacha ·

Hi,

> <form action="index.php?id= | " method="post">

wuerde mich sehr wundern, wenn das ginge. Damit wuerdest du ja immer die ID der aktuellen Seite als Formularziel angeben und nicht die ID der Seite, die das Login-Plugin beinhaltet.

Ciao,

Sacha

maxhb ·

Hi Sacha!

sacha schrieb

<form action="index.php?id= | " method="post">
wuerde mich sehr wundern, wenn das ginge. Damit wuerdest du ja immer die ID der aktuellen Seite als Formularziel angeben und nicht die ID der Seite, die das Login-Plugin beinhaltet.

Freut mich ja, dass Du das genau wie ich einschätzt, denn dann irre ich mich nicht allein. ES FUNZT!

Ich habe keine Ahnung, warum es so sein muss, aber was soll's.

Thx @ BK

cu
maxhb

bk ·

hi sascha,

> <form action="index.php?id= | " method="post">

wuerde mich sehr wundern, wenn das ginge. Damit wuerdest du ja immer die ID der aktuellen Seite als Formularziel angeben und nicht die ID der Seite, die das Login-Plugin beinhaltet.

du loggst dich damit ja aus, daher solltest du nach dem logout auf die gleiche seite springen auf der du vor dem logout warst.

mfg

bk

bk ·

hallo leute,

ich wollte den logout genau so wie auf typo3.org erstellen, allerdings kann ich momentan ohne weiteres nicht auf den angemeldeten user zugreifen.

auf typo3.org wurde scheinbar das php-script verändert. funktioniert auch bei einer änderung am script, allerdings ist das beim nächsten update wieder futsch.

ich möchte jetzt natürlich auch den aktuell angemeldeten benutzer ausgeben. hat jemand eine idee, wie ich über ts auf den angemeldeten user zugreifen kann?

mfg

bk

maxhb ·

Hi!

bk schrieb

ich möchte jetzt natürlich auch den aktuell angemeldeten benutzer ausgeben. hat jemand eine idee, wie ich über ts auf den angemeldeten user zugreifen kann?

@BK: Schön, dass Du meien Frage vorweggenommen hast 😉
Soll heissen, ich brüte gerade in der selben Sache, werde die Fortschritte natürlich hier posten.

Schönen Tag noch

maxhb

P.S.: Unter PHP kann man mit $GLOBALS['TSFE']->fe_user->user['username'] auf den Benutzernamen zugreifen, kann man das unter TS nicht ähnlich machen?

maxhb ·

Hi!
Nach dem Studium von tslib/class_tslib_fe.php ist alles klar! Einfach den

<!--###USERNAME###-->

an die Stelle im Template setzen, wo der Username auftauchen soll - fertig!

hope that helps

maxhb

sacha ·
maxhb schrieb
<!--###USERNAME###-->

lol, das ist so naheliegend, dass man einfach nicht drauf kommt....

maxhb ·

Hi!
Naja, bevor Du das als HowTo raustutst sollten wir noch versuchen eines zu klären, ich sage nur "Mehrsprachigkeit" 😉
Dank unserer kleinen Diskussion läuft mitlerweile alles bestens bei mir, nur erstelle ich gerade eine zweisprachige Website (deutsch/englisch) und dementsprechnd würde ich natürlich gern die Texte für die Anmeldung (Benutzername / Passwort) auch zweisprachig gestalten.
Wie kann man vermeiden, dass man mit 4 Fällen (2 Sprachen + Login + Logout) arbeiten muss? Das muss doch eleganter gehen, indem man irgendwie die entsprechenden Übersetzungen "einbeamt".

Irgend welche Ideen?

maxhb

bk ·

hallo max,

hast recht, man sollte drüber nachdenken. da ich keine zweisprachigkeit auf der seite habe ist mir das nicht aufgefallen.

werde auch mal drüber grübeln.

mfg

bk

PHASER ·

Hallo ich bin ganz neu hier (auch in Typo3) und habe zwecks einer Login-Box euren Code verwendet. Einloggen & anschließender Redirect auf die "betterloginbox" funktioniert einwandfrei, bloß das mit dem Auslogg-Formular/button-in-der-Box will nicht funktionieren. Nachdem man sich eingeloggt hat bleibt der Login-Dialog-in-der-Box bestehen und man hat nur die Möglichkeit sich über die "betterloginbox" auf der Redirect-Seite auszuloggen

Das How-To das ihr veröffentlichen wolltet habe ich leider noch nicht gefunden. - Existiert es schon ?

Ich habe den Code folgendermaßen in mein Template eingefügt.Vielleicht
hat eventuell jemand die Zeit, sich das anzugucken :

ID : 101 = SysOrdner mit Benutzergruppe "Kunden" mit momentan 2 Benutzern
ID : 130 = Kundenbereich-Startseite mit einer "betterloginbox"

###LOGIN### ist ein marker den ich auf meinem template.html benutzt habe

[usergroup = Kunden]          [i]# Ist das richtig? Oder doch "*" lassen?[/i]

temp.10  < tt_content.login 

temp.10 = TEXT 
temp.10.data  = TSFE : id 
temp.10.wrap (  
<tr> 
<td class="infobox"> 
     <form action="index.php?id= | " method="post"> 
    <input type="hidden" name="logintype" value="logout" > 
    <input type="submit" name="submit" value="logout" style="background-color:#FFFFFF; border:solid 1px #000000; font-size:10px;"> 
      </form> 
</td> 
</tr> 
) 
[else] 

temp.10 = TEXT 
temp.10.data  = TSFE : id 
temp.10.wrap ( 
          <form action="index.php?id=130" method="post"> 
          <table width=150 border="0" cellpadding="0" cellspacing="0"> 
             <tr> 
                 <td align="right"> 
                     <input name="user" type="text" id="user"
                       title="Benutzername" onfocus="if                   
                       (this.value==this.defaultValue) this.value=''" value="" 
                       size="4" /> 
      
                       <input name="pass" type="password" id="pass" 
                          title="Passwort" onfocus="if 
                          (this.value==this.defaultValue) this.value=''" value="" 
                          size="4" > 
                        <input name="image" type="image" title="Login" 
                           src="media/bullets/blackdot.gif" alt="Login" 
                           align="absbottom" width="18" height="18" 
                           border="0"> </td> 
                         <input type="hidden" name="redirect_url"  
                            value="index.php?id= | " /> 
                      </tr> 
                     </table> <input type="hidden" name="logintype" value="login" > <input type="hidden" name="pid" value="101" > 
              </form> 
) 

[global] 



page.10.marks.LOGIN < temp.10

Habe ich vielleicht irgendetwas in der Reihenfolge verwechselt... ???

Was könnte bloß falsch sein ?

Danke,

Borys