Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 6 Gast/Gäste
Beim Login das Passwort sehen - anzeigen lassen
#11
(19.01.2021, 11:31)[ExiTuS] schrieb: Jau, es geht nichts über Ordnung und Übersicht Wink
Doch jede Auslagerung in eine Datei kostet einen weiteren HTTP-Request.

Dann dürfte ja niemand OOP arbeiten
Zitieren
#12
Taj Freunde,

das Kästchen mit der Lupe habe ich relativ schnell rein bekommen.
Vor dem Passwort-Feld, finde da schaut es besser aus als dahinter.

Aaaaber ich bekomme es nicht hin das es tut was es soll.
Habe jetzt mehrmals beide probiert. Direkt eingefügt und auch ausgelagert.
Gute 3,5 Stunden kämpfe ich jetzt schon und langsam kommt Rauch aus meinen Ohren.
Oder ist es Dampf weil das Hirnwasser schon kocht? 
Irgendwo habe ich einen Fehler drin - aber wo???

Ich kopiere mal den Text aus der header_welcomeblock_guest_login_modal

Code:
<tr>
    <td class="trow1" width="25%"><strong>{$login_username}</strong></td>
    <td class="trow1"><input name="quick_username" id="quick_login_username" type="text" value="" class="textbox initial_focus" /></td>
</tr>
<tr>
    <td class="trow2"><strong>{$lang->password}</strong></td>
    <td class="trow2"><span class="postbit_buttons"><a href="#" title="Passwort anzeigen/verstecken" class="postbit_find" onclick="ToggleInputPW()"><span></span></a></span>
        <script type="text/javascript" src="https://quad-tigers.de/mybb-forum/jscripts/seepw.js"></script>
        <input name="quick_password" id="quick_login_password" type="password" value="" class="textbox" /><br />
        <a href="{$mybb->settings['bburl']}/member.php?action=lostpw" class="lost_password">{$lang->lost_password}</a>
    </td>
</tr>
<tr>
    <td class="trow1">&nbsp;</td>
    <td class="trow1 remember_me">
        <input name="quick_remember" id="quick_login_remember" type="checkbox" value="yes" class="checkbox" checked="checked" />
        <label for="quick_login_remember">{$lang->remember_me}</label>
    </td>
</tr>
<tr>
    <td class="trow2" colspan="2">
        <div align="center"><input name="submit" type="submit" class="button" value="{$lang->login}" /></div>
    </td>
</tr>

Ab der 7. Zeile nach: <td class="trow2"> inkl. der 8. Zeile ist das was ich eingefügt habe.

.... wird wohl doch nix aus meine Karriere als Programmierer wenn ich sowas schon nicht schaffe.  Sad
Gruß
DIMO
Zitieren
#13
Die ID des Input-Elements stimmt nicht mit der gesetzten ID im Script überein. Wink 
Prüfe das nochmal.
Zitieren
#14
Deine JavaScript-Funktion muss schon so wie die heißen, die du aufrufst, also:
function ToggleInputPW() { ... }

Und auch die id des input-Felds stimmt nicht überein.
document.getElementById("quick_login_password")

Du kannst im JS-Code hier nur eine ID festlegen. D.h. alle Passwortfelder müssten diese id besitzen, damit si von der Funktion angesprochen werden können. Manche Textfelder sind aber vorab schon mit einer eigenen ID vergeben. Das macht die Sache also so variabel, dass es mit einer einzigen ausgelagerten Datei und festem Code in die Hose gehen wird.

Besser stecke die <script>-Zeile in jedes Template, das du bearbeitest und passe die ID des Textfeldes und der function() manuell an. Dann bist du auf der sicheren Seite.

[ExiTuS]
MyBB + innovative Themes:
NokiaPort.de Forum Nokia-Traditionsforum seit 2006.
Live Escape Game Forum Diskussionsplattform für Escape-Rooms.
Unlösbares Problem, Dilemma? -> das Nötel Smile
Zitieren
#15
Einen gaaanz großen Dank  Love an
[ExiTuS], Schnapsnase und itsmeJAY. 

Jetzt hat es geklappt.
Besonderen Dank an [ExiTuS], kapiert habe ich es trotzdem nicht.
Aber Du hast mich ja regelrecht mit der Nase drauf gestoßen.
In der header_welcomeblock_guest_login_modal habe ich es geschafft.
Nun mache ich mich über die anderen Templates.
Hier dachte ich das es dieses Login-Fenster nur einmal gibt.
Aber genau das macht wohl die Kunst des programmierens aus alles schön zu verstecken
und dann später auch wieder zu finden.

Fürs nächste Forums-Update schreibe ich mir meine Änderungen auf damit ich das wieder einfügen kann falls es nach dem Update wieder verschwunden ist.

Im Verein gehen übrigens viele mit dem Handy ins Forum und ich denke da wäre das MouseOver nicht gut angekommen.
Also nochmals vielen Dank, mit eurer Hilfe habt ihr mindestens drei Leute glücklich gemacht und mich zusätzlich von den Quälgeistern erlöst.  Shy
Gruß
DIMO
Zitieren
#16
Shit,
jetzt habe ich doch noch ein Problem.

Das mit den Einsetzen des buttons hat überall geklappt, aber es funktioniert nicht überall.
Was schreibe ich anstelle der XXXX rein wenn ich keine ID finde?

Hier mal im forumdisplay_password
Code:
<tr>
<td width="50%" valign="top"><span class="smalltext">{$lang->password}</span><span class="postbit_buttons"><a href="#" title="Passwort anzeigen/verstecken" class="postbit_find" onclick="ToggleInputPWpw1()"><span></span></a></span></td>
    <script>function ToggleInputPWpw1() { var in_pw_type = document.getElementById("password"); if (in_pw_type.type === "password") { in_pw_type.type = "text"; } else { in_pw_type.type = "password"; } }</script>
<td width="50%" valign="top"><span class="smalltext">{$lang->confirm_password}</span><span class="postbit_buttons"><a href="#" title="Passwort anzeigen/verstecken" class="postbit_find" onclick="ToggleInputPWpw2()"><span></span></a></span></td>
    <script>function ToggleInputPWpw2() { var in_pw_type = document.getElementById("password2"); if (in_pw_type.type === "password") { in_pw_type.type = "text"; } else { in_pw_type.type = "password"; } }</script>
</tr>
<tr>
<td width="50%" valign="top"><input type="password" class="textbox" name="password" id="password" style="width: 100%" /></td>
<td width="50%" valign="top"><input type="password" class="textbox" name="password2" id="password2" style="width: 100%" /></td>
</tr>
<tr>
    <td colspan="2" style="display: none;" id="password_status">&nbsp;</td>
</tr>
Gruß
DIMO
Zitieren
#17
Warum ist denn das Input-Element in deinem Template doppelt vorhanden? Wink
Zitieren
#18
Oh Schande, da habe ich das falsche Template rein kopiert - sorry.
Das hier gezeigte sollte ja funktionieren.
Habe noch nicht gefunden wo ich das selber testen kann.

Komme heute leider nicht mehr dazu, aber gleich morgen früh mache ich weiter.

Ich hatte ein paar Templates dabei in denen ich keine ID-Bezeichung fand.
Glaube das war zB. das Template wo man im CP sein Passwort ändern kann.
Bin mir jetzt aber nicht sicher bei dieser Datenmenge.
Gruß
DIMO
Zitieren
#19
So, jetzt nochmal das richtige Script wo ich die ID nicht finde und deshalb nicht weiß was ich anstelle der XXXXX eingeben muß.

forumdisplay_password
Code:
<html>
<head>
<title>{$mybb->settings['bbname']} - {$lang->password_required} </title>
{$headerinclude}
</head>
<body>
{$header}
<form action="{$_SERVER['REQUEST_URI']}" method="post">
<table border="0" cellspacing="{$theme['borderwidth']}" cellpadding="{$theme['tablespace']}" class="tborder">
<tr>
<td class="thead" align="center" colspan="2"><strong>{$lang->password_required}</strong></td>
</tr>
<tr>
<td class="trow2" colspan="2">{$lang->forum_password_note}</td>
</tr>
<tr>
<td class="tcat" colspan="2"><strong>{$lang->enter_password_below}</strong></td>
</tr>
{$pwnote}
<tr>
<td class="trow1" align="center" colspan="2"><span class="postbit_buttons"><a href="#" title="Passwort anzeigen/verstecken" class="postbit_find" onclick="ToggleInputPW_fdpw()"><span></span></a></span><input type="password" class="textbox" name="pwverify" size="50" value="" /></td>
    <script>function ToggleInputPW_fdpw() { var in_pw_type = document.getElementById("XXXXX"); if (in_pw_type.type === "password") { in_pw_type.type = "text"; } else { in_pw_type.type = "password"; } }</script>
</tr>
</table>
<br />
<div align="center"><input type="submit" class="button" name="submit" value="{$lang->verify_forum_password}" /></div>
</form>
{$footer}
</body>
</html>
Hier: getElementById("XXXXX"); liegt - glaube ich mein Problem.
Gruß
DIMO
Zitieren
#20
Soo, jetzt bekommen wir das aber hin Smile

Jedes Passwort-Feld benötigt eine eigene ID (id="xxx"). Diese ID wird bei document.getElementID() eingefügt, damit diese Funktion weiß, welches Element es zu bearbeiten hat
Wo ein Textfeld noch keine eigene ID hat, musst du selbst eine vergeben. Und bei Textfeldern mit vorhandener ID, nimmst du diese für die JS-Funktion.

Dein input-Feld aus dem letzten Beispiel benötigt also eine ID, z.B.:
Code:
<input type="password" class="textbox" name="pwverify" size="50" value="" id="forumdisplay_pw"/>

Die JavaScript-Funktion bekommt nun diese id:
Code:
[...] var in_pw_type = document.getElementById("forumdisplay_pw"); [...]

Und genau so wird es auch in allen anderen Templates gemacht.
Es darf immer nur eine ID vergeben werden und diese muss eindeutig sein Wink

[ExiTuS]
MyBB + innovative Themes:
NokiaPort.de Forum Nokia-Traditionsforum seit 2006.
Live Escape Game Forum Diskussionsplattform für Escape-Rooms.
Unlösbares Problem, Dilemma? -> das Nötel Smile
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  Administrator kann das neue Theme nicht sehen Schumuckl 3 2.072 05.12.2006, 16:49
Letzter Beitrag: Schumuckl
  Login - Passwort falsch - keine Message Sikoda 3 2.234 01.08.2006, 19:37
Letzter Beitrag: Sikoda