Smilies in Textfeld... ???
Smilies in Textfeld... ???
Hallo,
da ich im Moment ja ein eigenes Forum programmiere benötige ich mal wieder eure Hilfe.
Wenn man einen Beitrag schreibt, hat man doch die Möglichkeit, auf einen Smilie zu klicken und danach erscheint eine Buchstabenkombination.
Also zum Beispiel " : D ".
Wie bekomme ich das hin? Und wie kann ich nacher, wenn der Beitrag geschrieben wurde prüfen, dass wenn " : D " vorhanden ist, dass dann der Smilie eingefügt wird?[/quote]
da ich im Moment ja ein eigenes Forum programmiere benötige ich mal wieder eure Hilfe.
Wenn man einen Beitrag schreibt, hat man doch die Möglichkeit, auf einen Smilie zu klicken und danach erscheint eine Buchstabenkombination.
Also zum Beispiel " : D ".
Wie bekomme ich das hin? Und wie kann ich nacher, wenn der Beitrag geschrieben wurde prüfen, dass wenn " : D " vorhanden ist, dass dann der Smilie eingefügt wird?[/quote]
Javascript aus posting_body.tpl:
Ersetzen kannst du das dann mit [php:str_replace]
Code: Alles auswählen
function emoticon(text) {
var txtarea = document.post.message;
text = ' ' + text + ' ';
if (txtarea.createTextRange && txtarea.caretPos) {
var caretPos = txtarea.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text;
txtarea.focus();
} else {
txtarea.value += text;
txtarea.focus();
}
}
Den Code verstehe ich irgendwie nicht!Pyramide hat geschrieben:Javascript aus posting_body.tpl:Ersetzen kannst du das dann mit <a href="http://de.php.net/manual-lookup.php?lan ... tr_replace" target="_blank" class="postlink">str_replace</a>Code: Alles auswählen
function emoticon(text) { var txtarea = document.post.message; text = ' ' + text + ' '; if (txtarea.createTextRange && txtarea.caretPos) { var caretPos = txtarea.caretPos; caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? caretPos.text + text + ' ' : caretPos.text + text; txtarea.focus(); } else { txtarea.value += text; txtarea.focus(); } }

hab da was gefunden und zwar mit JavaScript:
Die Zeile document.form.... macht jedoch immer Mist! Die Zeile müsste doch bedeuten, dass der Inhalt des Textaria gleich der Inhalt plus dem Zeichen des Smilies ist.
Aber wieso document.form.comment.value und muss ich da nicht irgendwie den Namen des Textfeldes miteinbeziehen?
Weiß jemand wo der Fehler liegt?
Code: Alles auswählen
<script language="Javascript">
function set(smilie) {
smilie = " "+smilie+" ";
document.form.comment.value=document.form.comment.value + smilie
}
</script>
<a href="javascript:set(': D')">Bild</a>
Aber wieso document.form.comment.value und muss ich da nicht irgendwie den Namen des Textfeldes miteinbeziehen?
Weiß jemand wo der Fehler liegt?
Also ich benutze immer diesen Code (von phpbb geklaut
). Einfach in den head einfügen:
Dein Formular muß dann den Namen "post" haben. Die Textbox den Namen "inhalt".
Die Smilies mußt du dann so verlinken:Müsste funktionieren.

Code: Alles auswählen
<script language="JavaScript" type="text/javascript">
function emoticon(text) {
text = ' ' + text + ' ';
if (document.post.inhalt.createTextRange && document.post.inhalt.caretPos) {
var caretPos = document.post.inhalt.caretPos;
caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == '' ? text + '' : text;
document.post.inhalt.focus();
} else {
document.post.inhalt.value += text;
document.post.inhalt.focus();
}
}
</script>
Die Smilies mußt du dann so verlinken:
Code: Alles auswählen
<a href="javascript:emoticon(':D')"><img src="smile.gif"></a>