Zur Navigation

PN-System mit Smileys

1 Marcel (Gast)

Hallo,

zurzeit bin ich dabei mit einem Freund eine Filmseite auf die Beine zu stellen. Dabei übernehme ich den Teil der Programmierung und unteranderem soll es auf dieser Seite eine Funktion zum Versenden und Erhalten von privaten Nachrichten geben. Als kleines Extra möchte ich beim Versenden gerne das Einbinden von Smileys ermöglichen. Nur leider weiß ich nicht wie ich das anstellen soll, da ich mich nicht allzu gut mit Stringbearbeitung auskenne und auch noch nie irgendetwas in dieser Richtung (z. B. BB-Codes) gemacht habe.

Ich würde mich sehr über eine kurze, verständliche Erklärung freuen (mir geht es um den Ansatz, ich verlange also keine bereits geschriebenen Codes). :)

22.01.2007 15:37

2 Jörg Kruse

Das Ersetzen von Smilie-Shortcuts kann man wohl am besten mit str_replace() vornehmen. Diese Funktion erwartet drei Argumente:

1. der Teilstring der ersetzt werden soll
2. der Teilstring durch den der 1. Teilstring ersetzt werden soll
3. der String, in welchem die Teilstrings ersetzt werden sollen

Beispiel:

$text = str_replace(':)', '<img src="/images/smilie-1.gif" alt="laechel" />', $text);
$text = str_replace(':(', '<img src="/images/smilie-2.gif" alt="traurig" />', $text);

22.01.2007 16:00 | geändert: 22.01.2007 16:01

3 Marcel (Gast)

Erstmal ein großes Dankeschön!

Eine Frage habe ich allerdings noch:
Muss ich bei der Ausgabe des Textes irgendetwas berücksichtigen oder erneut umwandeln oder ist bereits alles mit dieser kurzen Formatierung getan?

22.01.2007 16:03

4 Jörg Kruse

Funktionen wie htmlentities() oder htmlspecialchars() solltest du vor dieser Ersetzung anwenden, damit die img-Tags nicht kodiert werden

22.01.2007 16:07 | geändert: 22.01.2007 16:07

5 Marcel (Gast)

Alles klar, werde ich dann gleich mal ausprobieren. Nochmal vielen Dank. :)

PS: Kannst du mir eventuell auch gleich sagen, wie ich durch Klicken auf ein Smiley den entsprechenden Smileycode an der gewünschten Stelle einfügen kann?

22.01.2007 16:10 | geändert: 22.01.2007 16:11

6 Jörg Kruse

Das könnte man mit so einer JavaScript-Funktion:

<script type="text/javascript">
function addsmilie(smilie)
{
    document.Formular.Eingabe.value = document.Formular.Eingabe.value + smilie;
}
</script>

... die dann bei onclick auf das Smilie aufgerufen wird (wobei die name Attribute von Formular und Eingabefeld entsprechend der Funktion bezeichnet sind):

<form name="Formular" method="post">
<textarea name="Eingabe">

</textarea>
 <img src="/images/smilie-1.gif" alt="laechel" onClick="addsmilie(':)')" />
 </form>

22.01.2007 16:31 | geändert: 22.01.2007 16:32

7 Marcel (Gast)

Klasse, funktioniert ebenfalls.
Und weiteres Mal: Danke!

22.01.2007 17:00

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]