Ich habe vor einiger Zeit ähnliche Funktionen geschrieben und füge sie hier an. Wenn du willst, kannst du sie bei dem bereits angepassten Modul einbauen. Damit werden neben Smilies auch noch bb-Tags umgesetzt.Ladet einfach die Dateien in der includes.zip Datei hoch und überschreibt diese. Die Verzeichnisse sollten stimmen.
VORHER UNBEDINGT BACKUP MACHEN!!!
Falls was nicht läuft, dann einfach hier posten. Ansonsten viel Spaß.
Copyright, Readme etc. kommt irgendwann. Das eilt in meinen Augen aber nicht...
MFG
PHP-Quelltext |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
<?php
/**
* Diese Funktion setzt bbCode und Smilies um.
*
* @param String $var Der auf bbCode und Smilies zu prüfende Inhalt.
*/
function replace($var) {
$var = preg_replace("/\[b\](.*?)\[\/b\]/si","<strong>\\1</strong>", $var);
$var = preg_replace("/\[i\](.*?)\[\/i\]/si","<em>\\1</em>", $var);
$var = preg_replace("/\[u\](.*?)\[\/u\]/si","<u>\\1</u>", $var);
$var = preg_replace("/\[img\](.*?)\[\/img\]/si","<img src="\\1" alt="\\1" title="\\1" />", $var);
$var = preg_replace("/\[url=http:\/\/(.*?)\](.*?)\[\/url\]/si","<a href="http://\\1" title="http://\\1">\\2</a>", $var);
$var = preg_replace("/\[email=(.*?)\](.*?)\[\/email\]/si","<a href="mailto:\\1" title="\\1">\\2</a>", $var);
$smilies = array(
":)" => "smile.gif",
":-)" => "mile.gif",
"=)" => "smile.gif",
";)" => "wink.gif",
";-)" => "wink.gif",
);
foreach ($smilies as $smilie => $path) {
$var = str_replace($smilie, "<img src="$path" alt="$smilie" />", $var);
}
print $var;
}
?>
|
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
/** * Funktion, um Tags in ein übergebenes Feld einzufügen. * * @param starttag Das Starttag. * @param endtag Das Endtag. * @param field Das Feld, in welchem das Tag eingefügt werden soll. */ function setTag(starttag, endtag, field) { var input = document.getElementById(field); input.focus(); if (typeof document.selection != "undefined") { var range = document.selection.createRange(); var insert = range.text; range.text = starttag + insert + endtag; range = document.selection.createRange(); if (insert.length == 0) { range.move("character", -endtag.length); } else { range.moveStart("character", starttag.length + insert.length + endtag.length); } range.select(); } else if (typeof input.selectionStart != "undefined") { var start = input.selectionStart; var end = input.selectionEnd; var insert = input.value.substring(start, end); input.value = input.value.substr(0, start) + starttag + insert + endtag + input.value.substr(end); var pos; if (insert.length == 0) { pos = start + starttag.length; } else { pos = start + starttag.length + insert.length + endtag.length; } input.selectionStart = pos; input.selectionEnd = pos; } else { var pos; var regex = new RegExp('^[0-9]{0,3}$'); while (!regex.test(pos)) { pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0"); } if (pos > input.value.length) { pos = input.value.length; } var insert = prompt("Bitte gib den gewünschten Text ein."); input.value = input.value.substr(0, pos) + starttag + insert + endtag + input.value.substr(pos); } } |
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Benny« (8. April 2009, 16:04)