Smilies in Textfeld... ???

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Ulf
Mitglied
Beiträge: 61
Registriert: 27.12.2003 14:04
Kontaktdaten:

Smilies in Textfeld... ???

Beitrag von Ulf »

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]
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Beitrag von Pyramide »

Javascript aus posting_body.tpl:

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();
	}
}
Ersetzen kannst du das dann mit [php:str_replace]
Ulf
Mitglied
Beiträge: 61
Registriert: 27.12.2003 14:04
Kontaktdaten:

Beitrag von Ulf »

Pyramide hat geschrieben:Javascript aus posting_body.tpl:

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();
	}
}
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>
Den Code verstehe ich irgendwie nicht! :cry: Kannst du mir sagen, worum es da geht und wie ich den in meinem Quelltext einfügen soll?
Benutzeravatar
nu_marc
Mitglied
Beiträge: 560
Registriert: 21.03.2003 15:45

Beitrag von nu_marc »

Dazu habe ich auch gleich mal eine Frage. Ist es eigentlich möglich, anstatt des Codes die Smilies auch "grafisch" im Textfeld darzustellen? Gibt es ein Script mit dem das möglich wäre? :wink:
Kein Geld für eine Signatur :-(
Benutzeravatar
itst
Ehrenadmin
Beiträge: 7418
Registriert: 21.08.2001 02:00
Wohnort: Büttelborn bei Darmstadt
Kontaktdaten:

Beitrag von itst »

Du meinst das Bild in der Textarea? Nein.

Man könnte allerdings entweder mittels ActiveX ein RTF-Feld bauen, in dem man WYSIWY(M)G editieren könnte. Oder ein Javaapplet.
Sascha A. Carlin,
phpBB.de Ehrenadministrator
:o
Ulf
Mitglied
Beiträge: 61
Registriert: 27.12.2003 14:04
Kontaktdaten:

Beitrag von Ulf »

hab mir den Quellcode nochmal angeguckt und verstehe 0.
Kann mir jemand das vielleicht (idiotensicher :D ) für mich erklären, wenn man auf ein Bild klickt, dass dann die Zeichenkombination im Textaria erscheint?
Ulf
Mitglied
Beiträge: 61
Registriert: 27.12.2003 14:04
Kontaktdaten:

Beitrag von Ulf »

hab da was gefunden und zwar mit JavaScript:

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> 
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?
hansen
Mitglied
Beiträge: 22
Registriert: 16.03.2003 13:01
Wohnort: Neuenhaus
Kontaktdaten:

Beitrag von hansen »

Also ich benutze immer diesen Code (von phpbb geklaut :grin:). Einfach in den head einfügen:

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>
Dein Formular muß dann den Namen "post" haben. Die Textbox den Namen "inhalt".
Die Smilies mußt du dann so verlinken:

Code: Alles auswählen

<a href="javascript:emoticon(':D')"><img src="smile.gif"></a>
Müsste funktionieren.
Ulf
Mitglied
Beiträge: 61
Registriert: 27.12.2003 14:04
Kontaktdaten:

Beitrag von Ulf »

@hansen: Danke, hab den Code gerade eingebaut und funktioniert wunderbar!
Danke auch an alle anderen Antworten!
Antworten

Zurück zu „Coding & Technik“