Вот, щас дописал, ловите обработку смайлов с вариантами.
function smileys($str, $adm = 0) {
////////////////////////////////////////////////////////////
// Обработка смайлов //
////////////////////////////////////////////////////////////
// $adm=1 покажет и обычные и Админские смайлы //
// $adm=2 пересоздаст кэш смайлов //
////////////////////////////////////////////////////Mod By Shady/Shady92 (free2wap.ru)////////
global $rootpath;
// Записываем КЭШ смайлов
if ($adm == 2) {
// Обрабатываем простые смайлы
$array1 = array();
$array10 = array();
$path = $rootpath . 'smileys/simply/';
$dir = opendir($path);
while ($file = readdir($dir)) {
$name = explode(".", $file);
if ($name[1] == 'gif' || $name[1] == 'jpg' || $name[1] == 'png') {
$array1[':' . $name[0]] = '<img src="' . $path . $file . '" alt="" />';
$array10[':-' . $name[0]] = '<img src="' . $path . $file . '" alt="" />';
++$count;
}
}
closedir($dir);
// Обрабатываем Админские смайлы
$array2 = array();
$array3 = array();
$array8 = array();
$array9 = array();
$path = $rootpath . 'smileys/admin/';
$dir = opendir($path);
while ($file = readdir($dir)) {
$name = explode(".", $file);
if ($name[1] == 'gif' || $name[1] == 'jpg' || $name[1] == 'png') {
$array2[':' . trans($name[0]) . ':'] = '<img src="' . $path . $file . '" alt="" />';
$array3[':' . $name[0] . ':'] = '<img src="' . $path . $file . '" alt="" />';
//$array3['.' . $name[0] . '.'] = '<img src="' . $path . $file . '" alt="" />';
//$array2[':' . trans($name[0]) . ':'] = '<img src="' . $path . $file . '" alt="" />';
$array8['.' . $name[0] . '.'] = '<img src="' . $path . $file . '" alt="" />';
$array9['.' . $name[0] . '.'] = '<img src="' . $path . $file . '" alt="" />';
++$count;
}
}
// Обрабатываем смайлы в каталогах с :
$array4 = array();
$array5 = array();
$array6 = array();
$array7 = array();
$cat = glob($rootpath . 'smileys/user/*', GLOB_ONLYDIR);
$total = count($cat);
for ($i = 0; $i < $total; $i++) {
$dir = opendir($cat[$i]);
while ($file = readdir($dir)) {
$name = explode(".", $file);
if ($name[1] == 'gif' || $name[1] == 'jpg' || $name[1] == 'png') {
$array4[':' . trans($name[0]) . ':'] = '<img src="' . $cat[$i] . '/' . $file . '" alt="" />';
$array5[':' . $name[0] . ':'] = '<img src="' . $cat[$i] . '/' . $file . '" alt="" />';
$array6['.' . trans($name[0]) . '.'] = '<img src="' . $cat[$i] . '/' . $file . '" alt="" />';
$array7['.' . $name[0] . '.'] = '<img src="' . $cat[$i] . '/' . $file . '" alt="" />';
++$count;
}
}
closedir($dir);
}
$smileys = serialize(array_merge($array1, $array10, $array4, $array5, $array6, $array7));
$smileys_adm = serialize(array_merge($array2, $array3, $array8, $array9));
// Записываем в файл Кэша
if ($fp = fopen($rootpath . 'cache/smileys_cache.dat', 'w')) {
fputs($fp, $smileys . "\r\n" . $smileys_adm);
fclose($fp);
return $count;
}
else {
return false;
}
}
else {
// Выдаем кэшированные смайлы
if (file_exists($rootpath . 'cache/smileys_cache.dat')) {
$file = file($rootpath . 'cache/smileys_cache.dat');
$smileys = unserialize($file[0]);
if ($adm)
$smileys = array_merge($smileys, unserialize($file[1]));
return strtr($str, $smileys);
}
else {
return $str;
}
}
} Теперь можно писать Смайлы так- :смайл: или так .смайл. или даже так! :-( :-D :-) - будут отображать обычные Смайлы в папке simply/ для администрации Смайлы пишутся только через знак двоеточие :адм: Установка: заменить функцию смайлов, что в вашем файле incfiles/func.php на мою, соблюдая синтаксис, и обновить кэш смайлов в админке.
P.S: спасибы и плюски принимаются