Смайлы: вариации

701
.
Ammi (16.08.2010/01:10)
Название категории со смайлами? В файле name.dat
Нет..я уже сделал..
.
JavaMan
Это для какой версии
я прописывала так:для административныхif (ereg(".gif$", "$file")){$file2 = $file;$file2 = str_replace(".gif", "", $file2);$trfile = trans($file2);$str = str_replace(":$file2:", "<img src=\"../sm/adm/$file2.gif\" alt=\"\" />", $str);$str = str_replace(":$trfile:", "<img src=\"../sm/adm/$file2.gif\" alt=\"\" />", $str);$file2 = $file;$file2 = str_replace(".gif", "", $file2);$trfile = trans($file2);$str = str_replace(".$file2.", "<img src=\"../sm/adm/$file2.gif\" alt=\"\" />", $str);$str = str_replace(".$trfile.", "<img src=\"../sm/adm/$file2.gif\" alt=\"\" />", $str);}для каталога if (ereg(".gif$", "$k")){$file2 = $k;$file2 = str_replace(".gif", "", $file2);$trfile = trans($file2);$str = str_replace(":$file2:", "<img src=\"../sm/cat/$a[$a1]/$file2.gif\" alt=\"\" />", $str);$str = str_replace(":$trfile:", "<img src=\"../sm/cat/$a[$a1]/$file2.gif\" alt=\"\" />", $str);$file2 = $k;$file2 = str_replace(".gif", "", $file2);$trfile = trans($file2);$str = str_replace(".$file2.", "<img src=\"../sm/cat/$a[$a1]/$file2.gif\" alt=\"\" />", $str);$str = str_replace(".$trfile.", "<img src=\"../sm/cat/$a[$a1]/$file2.gif\" alt=\"\" />", $str);}
.
Color Is Life...
Тоже хочу спросить, тема думал новая Как сделать так :смайл: и так .смайл. ?
.
JavaMan
Помочь желающих нет
.
Кто может прописать?и мне
.
Color Is Life...
Я знаю только как сделать чтобы через точку писать, а варианты написания не знаю
.
Color Is Life...
Вот, щас дописал, ловите обработку смайлов с вариантами.
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: спасибы и плюски принимаются
.
зачёт однозначно , давно хотел сделать, но руки не доходили
.
JavaMan
Shady, Спасибо братан )))
.
Color Is Life...
Пожалуйста. Просто мне на телефоне надоело щелкать 7 раз джойстиком вверх чтобы поставить : а точку ставлю одним щелчком. Ну и для тех кто в инете первый раз сделал обработку таких смайлов :-) :-( :-D Новички же не умеют Смайлы тыкать
Всего: 35