Seite 1 von 1

Restzeichen-Mod für Advanced Quick-Reply Hack

Verfasst: 24.04.2005 17:14
von Jürgen H.
Hallo,

für einen Quick-Reply Hack, der eine Minimum-Zeichenlänge von 50 vorgibt, wurde die Anzeige der verbleibenden Restzeichen ähnlich wie beim Schreiben einer SMS nachgefragt.
Ein ähnlicher Mod von Underhill macht das für die Signaturlänge. Für jemanden, der mit Java auskennt, wäre das wohl recht einfach, ich bekomms nicht hin...

Kann oder möchte jemand helfen? Angezeigt werden sollte das Feld neben den Smilies.

Grüsse,
Jürgen

Verfasst: 26.04.2005 11:14
von Jürgen H.
Danke, habs mithilfe eines Freundes (WBB-Coder) hinbekommen :grin:

Grüsse,
Jürgen

Verfasst: 26.04.2005 14:16
von Jürgen H.
Falls es jemanden interessiert:

So sieht das aus -

- einmal die Anzeige der Restzeichen mit blockierten Vorschau-Absenden-Buttons:

[ externes Bild ]

- die 50 Zeichen (oder welche Zeichenlänge man auch eingestellt hat) sind voll. Die Vorschau-Absenden-Buttons sind freigegeben. Damit ist auch das nervige Pop-up raus, das sonst auf die eingestellte Mindestzeichenzahl hinweist :grin:

[ externes Bild ]

Reduziert man die Zeichenanzahl, werden die Buttons wieder deaktiviert und der Zähler auf den aktuellen Stand gebracht.

Geht mit Opera, IE, Firefox (und anderen vermutlich auch).

Grüsse,
Jürgen

Verfasst: 27.04.2005 00:43
von Firestarter
zeig mal das Add-On, Interesse besteht bei mir auf jeden Fall!

Verfasst: 27.04.2005 15:30
von Jürgen H.
Hallo,

Datei: quick_reply.tpl

Suche:

Code: Alles auswählen

        function storeCaret(textEl) {
                if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
        }
finde:

Code: Alles auswählen

                if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate();
danach einfügen:

Code: Alles auswählen

                counttext('50');
finde:

Code: Alles auswählen

</script>
davor einfügen:

Code: Alles auswählen

        function counttext(chars)
        {
            var anz=0, len=0, rest=0;
            var msg = document.getElementsByName('message')[0].value;
            for (var i=0; i < msg.length; i++)
            {
                if (anz>(chars-1))
                {
                    break;
                }
                anz++;
            }
            len = i;
           
            rest=chars-anz;
            if (rest == 0)
            {
                document.getElementById('messagecounter').innerHTML = "Notwendige Zeichenanzahl erreicht. Post it!";
                document.getElementById('preview').disabled = false;
                document.getElementById('submitbtn').disabled = false;
            } else {
                document.getElementById('messagecounter').innerHTML = "Es fehlen noch <div id=\"zeichenzahl\" style=\"display:inline;\">50</div>&nbsp;Zeichen.";
                document.getElementById('zeichenzahl').innerHTML=rest;
                document.getElementById('preview').disabled = true;
                document.getElementById('submitbtn').disabled = true;
            }
        }
finde:

Code: Alles auswählen

                                <textarea name='message' rows='10' cols='80' wrap='virtual' tabindex='3' class='post' onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);'></textarea><br>
rows und cols können bei euch andere Werte aufweisen
ersetze mit:

Code: Alles auswählen

                                <textarea name='message' rows='10' cols='80' wrap='virtual' tabindex='3' class='post' onselect='storeCaret(this);' onclick='storeCaret(this);' onkeyup='storeCaret(this);' onkeydown='storeCaret(this);'></textarea><br>
                                <div style="border:1px dotted #000000; width:250px" id="messagecounter">Es fehlen noch <div id="zeichenzahl" style="display:inline;">50</div>&nbsp;Zeichen zum Posten.</div><br />
finde:

Code: Alles auswählen

                                <input type='hidden' name='last_msg' value='{quick_reply.LAST_MESSAGE}'>
                                <!--input type='hidden' name='message' value=''-->
Danach einfügen:

Code: Alles auswählen

                                <input type='submit' tabindex='5' name='preview' id="preview" class='mainoption' value='{L_PREVIEW}' disabled="disabled" />&nbsp;
                                <input type='submit' accesskey='s' tabindex='6' tabindex='6' name='post' id='submitbtn' class='mainoption' value='{L_SUBMIT}' disabled="disabled" />
Grüsse,
Jürgen

Verfasst: 27.04.2005 20:46
von Firestarter
schon mal ein guter Ansatz, leider nicht mehrsprachrig benutzbar, aber vielleicht kann man da ja noch was verbessern. THX