У Вас есть один вопрос? - Тогда задайте его тут! new!

Тема закрыта
223K
.
Люди берегите воду - пейте пиво...

$user['id'] попробуй заменить на $user_id

.
# venom (08.01.2016 / 04:02)
$user['id'] попробуй заменить на $user_id
спасибо
.

Ребят, помогите пожалуйста, решил сделать стикеры себе, как вк и тд. В общем все сделал, в каждый мод их прикрутил, отделил отдельно от смайлов, то есть теперь и смайлы и стикеры, вопрос состоит в том, как правильно вывести код, чтобы работали и смайлы и стикеры на примере гостевой:

// Для зарегистрированных показываем ссылки и смайлы
                    $post = checkout($res['text'], 1, 1);
                    if ($set_user['smileys'])
                        $post = smileys($post, $res['rights'] >= 1 ? 1 : 0);


В этот код, нужно прикрутить стикеры, пробовал так, но тогда не отображаются смайлы:

// Для зарегистрированных показываем ссылки и смайлы
                    $post = checkout($res['text'], 1, 1);
                    if ($set_user['smileys'])
                    if ($set_user['stiker'])
                        $post = smileys($post, $res['rights'] >= 1 ? 1 : 0);
                        $post = stiker($post, $res['rights'] >= 1 ? 1 : 0);


Еще был вариант вот так
// Для зарегистрированных показываем ссылки и смайлы
                    $post = checkout($res['text'], 1, 1);
                    if ($set_user['smileys'] + $set_user['stiker'])
                        $post = smileys + stiker ($post, $res['rights'] >= 1 ? 1 : 0);
                } else {


Как правильно сделать
.
Люди берегите воду - пейте пиво...

FanLoko, Стикеры берутся с функции смайлов ?

.
# venom (08.01.2016 / 15:20)
FanLoko, Стикеры берутся с функции смайлов ?
Да, но теперь там две функции, то есть все переделано, смайлы отображаются там где нет стикеров
.
FanLoko
# venom (08.01.2016 / 15:20)
FanLoko, Стикеры берутся с функции смайлов ?
Вот код func.php, подобно этому и во всех других файлах
Стикеры (+/-)

function smileys($str, $adm = 0) {
    ////////////////////////////////////////////////////////////
    // Обработка смайлов                                      //
    ////////////////////////////////////////////////////////////
    // $adm=1 покажет и обычные и Админские смайлы            //
    // $adm=2 пересоздаст кэш смайлов                         //
    ////////////////////////////////////////////////////////////
    global $rootpath;
    // Записываем КЭШ смайлов
    if ($adm == 2) {
        // Обрабатываем простые смайлы
        $array1 = 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="" />';
                ++$count;
            }
        }
        closedir($dir);
        // Обрабатываем Админские смайлы
        $array2 = array ();
        $array3 = 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="" />';
                ++$count;
            }
        }
        // Обрабатываем смайлы в каталогах
        $array4 = array ();
        $array5 = 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="" />';
                    ++$count;
                }
            }
            closedir($dir);
        }
        $smileys = serialize(array_merge($array1, $array4, $array5));
        $smileys_adm = serialize(array_merge($array2, $array3));
        // Записываем в файл Кэша
        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;
        }
    }
}


function stiker($str, $adm = 0) {
    ////////////////////////////////////////////////////////////
    // Обработка стикеров                                      //
    ////////////////////////////////////////////////////////////
    // $adm=1 покажет и обычные и Админские стикеры            //
    // $adm=2 пересоздаст кэш стикеров                         //
    ////////////////////////////////////////////////////////////
    global $rootpath;
    // Записываем КЭШ стикеров
    if ($adm == 2) {
        // Обрабатываем простые стикеры
        $array1 = array ();
        $path = $rootpath . 'stiker/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="" />';
                ++$count;
            }
        }
        closedir($dir);
        // Обрабатываем Админские стикеры
        $array2 = array ();
        $array3 = array ();
        $path = $rootpath . 'stiker/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="" />';
                ++$count;
            }
        }
        // Обрабатываем стикееы в каталогах
        $array4 = array ();
        $array5 = array ();
        $cat = glob($rootpath . 'stiker/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="" />';
                    ++$count;
                }
            }
            closedir($dir);
        }
        $stiker = serialize(array_merge($array1, $array4, $array5));
        $stiker_adm = serialize(array_merge($array2, $array3));
        // Записываем в файл Кэша
        if ($fp = fopen($rootpath . 'cache/stiker_cache.dat', 'w')) {
            fputs($fp, $stiker . "\r\n" . $stiker_adm);
            fclose($fp);
            return $count;
        } else {
            return false;
        }
    } else {
        // Выдаем кэшированные стикеры
        if (file_exists($rootpath . 'cache/stiker_cache.dat')) {
            $file = file($rootpath . 'cache/stiker_cache.dat');
            $stiker = unserialize($file[0]);
            if ($adm)
                $stiker = array_merge($stiker, unserialize($file[1]));
            return strtr($str, $stiker);
        } else {
            return $str;
        }
    }
}
.
Менделеев

в users делал stiker для вывода ? и в core.php

$set_user['stiker'] = 1;
.
Люди берегите воду - пейте пиво...

fanatos, можно все в одну функцию запилить , но 4-5 while с for, слишком...
Кеш хоть обновлял стиков ?

.
# venom (08.01.2016 / 15:55)
fanatos, можно все в одну функцию запилить , но 4-5 while с for, слишком...
Кеш хоть обновлял стиков ?
конечно обновлял) И стиков и смайлов)
Стикеры вывел спецом только в гостевой, там они работают нормально, но смайлы не отображаются, а по остальному сайту работает
.
Люди берегите воду - пейте пиво...

FanLoko, Проверить не где, тройка не установлена щас ...

Всего: 6714