[Login] Anderes Theme für Gäste beim Login
am 30.08.2011 - 08:48 Uhr in
Hallo zusammen,
ich bin gerade dabei die Login-Form anzupassen, nun hätte ich gern, dass als Gast ein anderes Theme angezeigt wird damit ich meine Login-Form dementsprechend anpassen kann wie ich mir das vorstelle, weil ansonsten bin ich ja im Template der Seite "gefangen". Hat jemand für mich hier eine Idee?
Mit freundlichen Grüßen
- Anmelden oder Registrieren um Kommentare zu schreiben

hi none hier ist eine kleine
am 30.08.2011 - 14:02 Uhr
hi none
hier ist eine kleine anleitung:
http://drupal.org/node/350634
gruss
stef
1kubik schriebhi nonehier
am 30.08.2011 - 17:37 Uhr
hi none
hier ist eine kleine anleitung:
http://drupal.org/node/350634
gruss
stef
Hallo Stef,
danke für den Link, den hatte ich bereits gefunden, hat nur leider nicht das Problem ansich gelöst, aber bin nun über ein Modul gegangen, was mein Problem gelöst hat.
Habe zuerst über das Modul Themekey einem Gast ein von mir angelegtes Theme verpasst, was rein nur eine page.tpl.php und dementsprechend user-pass.tpl.php und user-login.tpl.php.
Nun hab ich jedoch festgestellt, dass wenn ich in den tpl-Dateien die Formausgabe über
<?php print $rendered; ?>ausgebe, er zwei "hidden"-Felder ausgibt, die so oder so ähnlich aussehen:
<input id="form-ac8cf158fb73f9101c90f9fedac84e12" type="hidden" value="form-ac8cf158fb73f9101c90f9fedac84e12" name="form_build_id"><input id="edit-user-pass" type="hidden" value="user_pass" name="form_id">
und ich komm nicht wirklich dahinter, ob das notwendig ist, die Passwortanforderung funktioniert einwandfrei, ist dies nur eine ID für die jeweilige Form die ausm System erstellt wurde? Weil dann wäre es ja zu ignorieren.
Meine user-pass.tpl.php sieht nun so aus:
<div id="container">
<!-- Header -->
<div id="logo"></div>
<!-- Container -->
<div id="edit-name-wrapper" class="login-form">
<label for="edit-name"><span title="This field is required."></span></label>
<input type="text" onblur="if (this.value=='') this.value='E-Mail-Adresse'" onfocus="if (this.value=='E-Mail-Adresse') this.value='';" type="text" value="E-Mail-Adresse" size="30" id="edit-name" name="name" maxlength="60">
</div>
<div id="form-submit">
<input id="edit-submit" class="form-submit" type="submit" value="Passwort anfordern" name="op" />
</div>
</div>
Das Funktioniert einwandfrei von der Funktion her, aber wäre Fatal wenn ich dadurch ein Sicherheitsproblem bekommen würde, sobald die Forms nicht aus dem System erzeugt werden.
Mit freundlichen Grüßen
nabend none Zitat: und ich
am 30.08.2011 - 18:07 Uhr
nabend none
und ich komm nicht wirklich dahinter, ob das notwendig ist,
ja genau, das ist zur sicherheit und wird von drupal gerendert
damit das login nicht einfach mal so von 'aussen' aufgerufen
werden kann..
daher musst du einen anderen weg gehen bzw die drupal form api
benutzen
gruss
stef
1kubik schrieb nabend
am 30.08.2011 - 18:13 Uhr
nabend none
und ich komm nicht wirklich dahinter, ob das notwendig ist,
ja genau, das ist zur sicherheit und wird von drupal gerendert
damit das login nicht einfach mal so von 'aussen' aufgerufen
werden kann..
daher musst du einen anderen weg gehen bzw die drupal form api
benutzen
gruss
stef
Ok nur zur Sicherheit, ist das bei ALLEN Forms notwendig oder nur bei der user-pass.tpl.php? Weil ansonsten gehts ja schon damit los, dass ich Probleme bekomme den Submit-Button anzupassen :/
Die beiden Felder sind bei
am 30.08.2011 - 18:34 Uhr
Die beiden Felder sind bei allen Formularen notwendig. Du kannst aber jedes Formular mittels PHP-Code in einem eigenen Minimodul ändern, indem Du die Funktion [api:hook_form_alter] oder [api:hook_form_FORM_ID_alter] benutzt.
Beste Grüße
Werner
wla schrieb Die beiden Felder
am 31.08.2011 - 08:28 Uhr
Die beiden Felder sind bei allen Formularen notwendig. Du kannst aber jedes Formular mittels PHP-Code in einem eigenen Minimodul ändern, indem Du die Funktion [api:hook_form_alter] oder [api:hook_form_FORM_ID_alter] benutzt.
Beste Grüße
Werner
Hallo Werner,
danke für die Hinweise, ich habe jedoch nun noch einen anderen Ansatz gefunden, könnt ihr mir sagen ob das so auch in Ordnung ist?
Folgendermaßen sieht nun meine user-login.tpl.php aus:
<div id="container">
<div id="logo"></div>
<div id="edit-name-wrapper" class="login-form">
<img class="icon" src="/sites/all/themes/genesis/Login/images/user-icon.png" />
<label for="edit-name"><span title="This field is required."></span></label>
<input type="text" onblur="if (this.value=='') this.value='Benutzername / E-Mail-Adresse'" onfocus="if (this.value=='Benutzername / E-Mail-Adresse') this.value='';" type="text" value="Benutzername / E-Mail-Adresse" size="30" id="edit-name" name="name" maxlength="60">
</div>
<div id="edit-pass-wrapper" class="login-form">
<img class="icon" src="sites/all/themes/genesis/Login/images/pw-icon.png" />
<label for="edit-pass"><span title="This field is required."></span></label>
<input type="password" onblur="if (this.value=='') this.value='Passwort'" onfocus="if (this.value=='Passwort') this.value='';" type="text" value="Passwort" size="30" maxlength="128" id="edit-pass" name="pass">
</div>
<div id="form-submit">
<input name="form_build_id" id="<?php print $form['form_build_id']['#id']; ?>" value="<?php print $form['form_build_id']['#value']; ?>" type="hidden">
<input id="edit-user-login" type="hidden" value="user_login" name="form_id">
<input id="edit-submit" class="form-submit" type="submit" value="Anmelden" name="op">
</div>
<div id="missing-pw">
Passwort vergessen? <a href="/user/password">Hier klicken!</a>
</div>
</div>
die Ausgabe ist nun wie beim Standard-Form, ich erzeuge eine form_build_id welche auch mit übergeben wird. Spricht etwas gegen diese Lösung?
Mit freundlichen Grüßen
er möge sich
am 31.08.2011 - 08:47 Uhr
er möge sich http://drupal.org/project/role_theme_switcher ansehen ;)