Hab hier was kleines gecodet. Man muss nur 3 Variablen in der functions.inc.php angeben.
1. Der Name des Formulars (<form>-Tag);
2. Der Name des Feldes, in die die Smilies eingefügt werden sollen
3. Das Verzeichnis zum Auslesen der Smilies
Also das Script ließt aus dem angegebenen Vezeichnis alle Smilies aus ( nur mit gif-Smilies), generiert einen BB-Code. Diese Smilies werden dann angezeigt, sodass wenn man darauf klickt (auf ein Smilie) der BB-Code davon in das Formular eingefügt wird. Beim replacen wird der BB-Code dann wieder durch die Smilies ersetzt !
Bitte postet mal eure Meinung. Danke.
So, und nun das Script:
functions.inc.php:
PHP:
<?php
// Keine Variable umbenennen, nur die Werte davon anpassen:
$smiliedir = "smilies";
$form_name = "name";
$textarea_name = "namet";
// Nix mehr ändern !
function smilies_into_array() {
global $smiliedir;
$dir=$smiliedir;
$open=opendir($dir);
$array=array();
$i=1;
while($file=readdir($open)) {
if ($file != "." && $file != "..") {
$neu=str_replace(".gif","",$file);
$replacecode=":".$neu.":";
$array[$replacecode][$i]=$file;
$i+=1;
}
}
return $array;
}
$smilearray=smilies_into_array();
function make_javascript() {
global $form_name;
global $textarea_name;
global $smilearray;
echo "<script language=\"javascript\" type=\"text/javascript\">";
echo "<!--";
foreach ($smilearray as $smilie_bb=>$newarray) {
foreach ($newarray as $functionnr=>$file) {
echo $functionnr;
echo '
function smilie'.$functionnr.'()
{
document.'.$form_name.'.'.$textarea_name.'.value = document.'.$form_name.'.'.$textarea_name.'.value + "'.$smilie_bb.'";
}';
}
}
echo "//-->";
echo "</script>";
}
function show_smilies() {
global $smilearray;
global $smiliedir;
foreach ($smilearray as $smilie_bb=>$newarray) {
foreach ($newarray as $functionnr=>$file) {
echo "<img border=\"0\" src=\"".$smiliedir."/".$file."\" onClick=\"smilie".$functionnr."()\">";
}
}
}
function replace_bbcode($textarea) {
global $smilearray;
global $smiliedir;
foreach ($smilearray as $smilie_bb=>$newarray) {
foreach ($newarray as $functionnr=>$file) {
$textarea=str_replace($smilie_bb, "<img src=\"".$smiliedir."/".$file."\">", $textarea);
}
}
return $textarea;
}
?>
und nun so einbinden wie bei diesem Beispiel:
PHP:
<?php
include("functions.inc.php");
echo "<html><head>";
make_javascript();
echo "</head><body>";
if ($_GET["action"]=="senden") {
echo replace_bbcode($_POST["namet"]);
}
else {
echo "<form action=\"".(basename($PHP_SELF))."?action=senden\" name=\"name\" method=\"post\">";
echo "<br><br>";
echo "<textarea name=\"namet\" rows=\"20\" cols=\"20\"></textarea>";
show_smilies();
echo "<input name=\"senden\" type=\"submit\"></form>";
}
?>
An der Stelle, wo die Smilies angezeigt werden sollen, bitte
show_smilies();
aufrufen, und zum Replacen des BB-Codes durch Smilies bitte
replace_bbcode($_POST["namet"]);
aufrufen, wobei $_POST["namet"] natürlich durch den Namen eures Textareafeldes zu ersetzten ist, also z.B. $_POST["deintextareaname"].
Hoffe, das hilft !