$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, Стикеры берутся с функции смайлов ?
Да, но теперь там две функции, то есть все переделано, смайлы отображаются там где нет стикеров
# 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, Проверить не где, тройка не установлена щас
...