Zum Inhalt springen

Problem mit Marker bei Mehrsprachigem Login Bereich

Erstellt am 24. Februar 2009 · 8 Antworten · letzte Antwort am 6. März 2009

Tags: felogin, Frage

florist ·

Hallo!
Ich die newloginbox extension installiert und habe einen festen Login Bereich in meinem Template verankert, hier der Code:

[usergroup = *]
page.10.marks.LOGINBOX = TEXT
page.10.marks.LOGINBOX.value(
  <form action="index.php?id=14" method="post">
  login as <!--###USERNAME###-->
  <input class="login_input" type="submit" name="submit" value="Logout" />
  <input type="hidden" name="logintype" value="logout" />
  <input type="hidden" name="pid" value="15" />
  </form>
)
[else]
page.10.marks.LOGINBOX = TEXT
page.10.marks.LOGINBOX.value (
  <form action="index.php?id=3" method="post" onsubmit="superchallenge_pass(this); return true;">

  <input class="login_input" type="text" id="user" name="user" value=""/>
    <br> <br> <br>
  <!--###USERNAME_LABEL###-->
  <input class="login_input" type="password" id="pass" name="pass" value="" />
  <br>
  <input class="login_input" type="submit" name="submit" value="Login" />
  <input type="hidden" name="logintype" value="login" />
  <input type="hidden" name="pid" value="15" />
  <input type="hidden" name="redirect_url" value="index.php?id=3" />
  <!--###EXTRA_HIDDEN###-->
  </form>
)
[GLOBAL]

Das funktioniert auch sehr gut. Leider erzeugt er nur die Eingabefelder und den An/Abmelden Button.
Nun möchte ich ein "LAbel": "Benutzername" und "Passwort" vor den Eingabefeldern einfügen.

Da meine seite mehrsprachig ist, wollte ich das über einen Marker, der in der newloginbox verwendet wird, lösen:
<!--###USERNAME_LABEL###-->
leider wird mir nichts angezeigt, weiß jemand was ich falsch mache?

freshman17 ·

quick & dirty

in typo3conf/ext/felogin/pi1/ liegt die Datei class.tx_felogin_pi1.php dort ist ein Methode

...
 protected function showLogin() {

  ..
  $markerArray['###USERNAME_LABEL###'] = $this->pi_getLL('username', '', 1);
 }
...

in der dein Marker schon deklariert ist. Der Inhalt wird im aus der Sparchdatei locallang.xml (die im selben Ordner liegt) bereitgestellt und zwar genau aus dieser Zeile

(vergleiche index="username" <=> $this->pi_getLL('username', '', 1); )

    <label index="username">Username:</label>

Für Mehrsprachigkeit muß also nur die locallang.xml editiert bzw. erweitern.

locallang.xml:

 </meta>
 <data type="array">
  <languageKey index="default" type="array">
    <label index="ll_welcome_header">User login</label>
    ....
    <label index="username">Username:</label>
    ....
  <languageKey/>
  <languageKey index="de" type="array">
    <label index="ll_welcome_header">Willkommen</label>
    ....
    <label index="username">Benutzername:</label>
  <languageKey/>

dann noch Typo3 sagen das es deutsche Übersetztungen nehmen soll falls vorhanden

config.language = de

Das Verfahren sollte für jede Extension gelten wenn sie halbwegs nach den TYPO3 Coding Guidelines programmiert wurde.

In diesem Sinne

freshman

just2b ·

Hallo,

freshman17 du bist leider völlig daneben!

@ florist: splitte den TS-Code auf, verwende ein COA damit du zu den einzelnen Teilen kommst, dann kannst du mittels COndition oder dem lang-Parameter im value einfach die Werte ändern

georg

freshman17 ·

Da er die Seite mehrsprachig betreiben will ist die Übersetztung der locallang.xml der einfachste, flexibelste und vor allem der empfohlene Weg!

Für sein Vorhaben muss er dann nur die Marker einfügen ist dann fertig.

florist ·

Danke für die infos.Ich hab des mit der locallang, bereits kapiert und dort auch alles angepasst, das funktionioert auch gut.nur mein genaues problem habt ihr nicht ganz beantwortet.

ich werd es mit dem weg von "just2b" versuchen.
Ich glaub ich hab halbwegs verstanden was er meint, mit conditions hab ich mir es auch shon überlegt (wusste nur aufgrund meiner typo3kenntisse nicht wie ich es syntaxmässig richtig umsetze).

Trotzdem nochmal zu meiner Frage:
in dem von mir verwendetem code wird der marker <!--###USERNAME###-->
angesprochen und nach erfogreichem login auch durch den benutzernamen ersetz.

warum kann ich dann den marker <!--###USERNAME_LABEL###--> (der ja auch mit der newloginbox mitkommt!) nicht genauso ansprechen?

Michaelh74 ·

Nur mal grundlegend. Wo steht, das das Überschreiben der locallang.xml der empfohlenden Weg ist?
Für einen Label ist es sicher nicht empfehlenswert die locallang.xml zu patchen zumal diese ja beim nächsten Update überschrieben wird.

Handelt es sich um viele Werte, ist dies sicher eine denkbar Lösung.

Gruß
Michael

Michaelh74 ·

Ich denke, wenn es jemand aus dem Stehgreif sicher wüßte, hätte er Dir die Lösung sicher nicht vorenthalten. Und um selbst erst stundenlang zu Testen fehlt den meisten hier logischerweise die Zeit...

Denke mal Du verstehst das sicher.

Gruß
Michael