<?php
require'config.php';
$align='left';
$sett['max_size'] = $set[max_size_sm];
$sett['level'] = $set[level_sm];
$title='Список смайлов';
aut();
head();
who_add(0,'enter');
echo '<br/>';
switch ($_GET['act'])
{
default: # Список категорий & Смайлов
$id = abs(intval($_GET['id']));
if (empty($id))
{
if (empty($user['max'])) $user['max']=10;
$max = $user['max'];
$all = $db->sql_fetchfield($db->sql_query("select count(*) as num from smiles_dir"),0);
$k_page=k_page($all,$max);
$page=page($k_page);
$start=$max*$page-$max;
if ($all)
{
echo '<b>Список категорий:</b><br/>';
$result = $db->sql_query ("Select * from smiles_dir order by id desc LIMIT $start, $max");
while($dir = $db->sql_fetchrow($result))
{
$allsm = $db->sql_fetchfield($db->sql_query("select count(*) as num from smiles_spis WHERE `id_dir` = '".$dir['id']."'"),0);
if($user['level'] >= $sett['level']){
echo '<a href="smile.php?act=edit&id='.$dir['id'].'">'; }
echo '<img src="img/dir.gif" alt="dir"/></a> <a href="smile.php?id='.$dir['id'].'">'.$dir['name'].'</a> ['.$allsm.']<br/>';
}
if ($k_page>1)
{
?><dl><dt></dt></dl><?php
str('smile?',$k_page,$page);
?><br/><dl><dt></dt></dl><br/><?php
}
} else
{
echo 'Категории не созданы';
}
if ($user['level'] >= $sett['level']) echo'<br/><a href="smile.php?act=add_cat"><b>Добавить категорию</b></a>';
} else
{
$dir = $db->sql_fetchrow ($db->sql_query ("Select * from smiles_dir where id='".$id."'"));
echo '<b>'.$dir['name'].':</b><br/>';
if (empty($user['max'])) $user['max']=10;
$max = $user['max'];
$all = $db->sql_fetchfield($db->sql_query("select count(*) as num from smiles_spis WHERE `id_dir` = '".$id."'"),0);
$dir = $db->sql_fetchrow ($db->sql_query ("Select * from smiles_dir where id='".$id."'"));
$k_page=k_page($all,$max);
$page=page($k_page);
$start=$max*$page-$max;
if ($all)
{
echo '<form action="smile.php?act=delete&id='.$id.'" method="POST">';
$result = $db->sql_query ("Select * from smiles_spis WHERE `id_dir` = '".$id."'order by id desc LIMIT $start, $max");
$sml_k=$start+1;
while($smile = $db->sql_fetchrow($result))
{
echo $sml_k++.') ';
if ($user['level'] >= $sett['level']) echo '<input type="checkbox" name="check_del[]" value="'. $smile['id'] .'"/> ';
echo '<img src="smiles/'.$smile['name'].'.gif" alt="'.$smile['name'].'"/> <b>'.$smile['sim'].'</b> ';
if ($user['level'] >= $sett['level'])
echo'<a href="smile.php?act=edit&id_dir='.$id.'&smile='.$smile['id'].'"><img src="img/fd.gif" alt="[Изм.]"/></a><br/>';
else
echo '<br/>';
}
if ($k_page>1)
{
?><dl><dt></dt></dl><?php
str('?id='.$dir['id'].'&',$k_page,$page);
?><br/><dl><dt></dt></dl><br/><?php
}
if ($user['level'] >= $sett['level']) echo '<br/><input type="submit" class="button" value="Удалить выделеное"/></form>';
} else
{
?>Смайлов нет<br/><?php
}
echo gb.'<a href="'.H.'smile.php">К категориям</a><br/>'.div;
###Загрузка смайла
if ($user['level'] >= $sett['level']) {
echo '<br/><br/><form action="smile.php?act=upload&id='.$id.'" method="POST" name="form" enctype="multipart/form-data">
<small>[max.<b>'.$sett['max_size'].'</b> kb, <b>gif</b>]</small><br/>
<input type="file" name="file"/><br/>
Название смайла:<br/><input name="name" maxlength="56" placeholder="Пример: .смайл." type="text" /><br/>
<input type="submit" class="button" name="submit" value="Загрузить" /></form><br/>';
}
}
break;
case 'delete':
if ($user['level'] >= $sett['level'])
{
# Удаление смайлов (выделенное)
if (empty($_POST['check_del'])) header('Location: smile.php?id='.(int)$_GET['id'].'');
if ($user['level'] < $sett['level']) header("Location: index.php"); # Проверка доступа
$col = 0;
foreach ($_POST['check_del'] as $check) {
$col = $col + 1;
$smile = $db->sql_fetchrow ($db->sql_query ("SELECT * FROM smiles_spis where id='".(int)$check."'"));
unlink($_SERVER['DOCUMENT_ROOT']."/smiles/".$smile['name'].".gif");
$db->sql_query("DELETE FROM `smiles_spis` WHERE `id` = '".(int)$check."'");
header('Location: smile.php?id='.(int)$_GET['id'].'');
}
}
break;
case 'dir': # Удаление категории & Удаление смайлов связанных с этой категорией
if ($user['level'] < $sett['level']) header("Location: smile.php");
$id = abs(intval($_GET['id']));
$dir = mysql_fetch_assoc(mysql_query("SELECT * FROM `smiles_dir` WHERE `id` = '".$id."'"));
if ($user['level'] < $sett['level']) header("Location: index.php"); # Проверка доступа
if (empty($dir['id'])) header("Location: index.php");
$db->sql_query("DELETE FROM `smiles_dir` WHERE `id` = '".$id."'");
$q = mysql_query("SELECT * FROM `smiles_spis` WHERE `id_dir` = '".$id."'");
while ($sm = mysql_fetch_assoc($q)) {
@unlink(H.'smiles/'.$sm['name']);
}
$db->sql_query("DELETE FROM `smiles_spis` WHERE `id_dir` = '".$id."'");
echo '<b style="color:green">Категория успешно удалена!</b><br/>';
if (isset($_GET['act'])) echo gb.'<a href="'.H.'smile.php?">К категориям</a>'.div;
if (isset($_SESSION['r_m'])) echo gb.'<a href="'.H.'room.php?rm='.$_SESSION['r_m'].'">В чат</a>'.div;
echo gb.'<a href="'.H.'enter?">Прихожая</a>'.div;
foot();
exit;
break;
case 'edit':
if ($user['level'] < $sett['level']) header("Location: index.php"); # Проверка доступа
if ($_GET['id']) { # Редактирование категории
$id = abs(intval($_GET['id']));
$dir = $db->sql_fetchrow ($db->sql_query ("Select * from smiles_dir where id='".$id."'"));
if (empty($dir['id'])) header("Location: index.php");
if (isset($_POST['submit'])) {
$name = check($_POST['name']);
if (empty($name)) {
echo 'Вы не ввели название категории';
} else {
$db->sql_query("update `smiles_dir` set name='".$name."' WHERE `id`='".$id."';");
header("Location: smile.php");
}
}
echo 'Редактирование категории:<br/>
<form method="post" action="smile.php?act=edit&id='.$id.'">
Название:<br /><input name="name" maxlength="56" value="'.$dir['name'].'" type="text" /><br/>
<input value="Изменить" name="submit" type="submit" /></form><br/><br/>
<a href="smile.php?act=dir&id='.$dir['id'].'"><b>Удалить каталог</b></a><br/>';
}
if ($_GET['smile']) { # Редактирование смайла
if ($user['level'] < 8) header("Location: index.php"); # Проверка доступа
$id = abs(intval($_GET['smile']));
$smile = mysql_fetch_assoc(mysql_query("SELECT * FROM `smiles_spis` WHERE `id` = '".$id."'"));
if (empty($smile['name'])) header("Location: index.php");
if (isset($_POST['submit'])) {
$sim = check($_POST['sim']);
$dir = check($_POST['dir']);
if (empty($sim)) $err = 'Не введено название';
if (empty($dir)) $err = 'Не выбран каталог';
if (isset($err)) {
echo $err;
} else {
$db->sql_query("update `smiles_spis` set sim='".$sim."', `id_dir` = '".$dir."' WHERE `id`='".$id."';");
header("Location: smile.php?id=".$dir);
}
}
echo '<form method="post" action="smile.php?act=edit&smile='.$id.'">';
echo 'Категория:<br/><select name="dir">';
$q = mysql_query("SELECT * FROM `smiles_dir`");
while ($dir = mysql_fetch_assoc($q)) {
if($_GET['id_dir'] == $dir['id']) echo '<option value="'.$dir['id'].'" SELECTED>'.$dir['name'].'</option>';
else
echo '<option value="'.$dir['id'].'">'.$dir['name'].'</option>';
}
echo '</select><br/>';
echo 'Название:<br /><input type="text" name="sim" value="'.$smile['sim'].'" maxlength="56"/><br/>';
echo '<input value="Сохранить" name="submit" type="submit" /></form>';
}
break;
case 'add_cat': # Добавление каталога
if ($user['level'] < $sett['level']) header("Location: index.php"); # Проверка доступа
if (isset($_POST['submit'])) {
$name = check($_POST['name']);
if (strlen($name) > 50) $err="Имя превышает 50 символов<br/>";
if (strlen($name) < 2) $err="Имя слишком короткое<br/>";
if (isset($err)) {
echo $err;
} else {
if (mysql_query("INSERT INTO `smiles_dir` (`name`) values('$name')")) {
mysql_query("OPTIMIZE TABLE `smiles_dir`");
header("Location: smile.php");
} else {
echo '<b>Возникла ошибка</b><br/>';
}
}
}
?><form method="post" action="smile.php?act=add_cat">
Название:<br /><input name="name" maxlength="56" type="text" /><br/>
<input value="Сохранить" name="submit" type="submit" /></form><?php
break;
case 'upload': # Загрузка смайла
if ($user['level'] < $sett['level']) header("Location: index.php");
$id = abs(intval($_GET['id']));
$nameSmile = check($_POST['name']);
$dir = mysql_fetch_assoc(mysql_query("SELECT * FROM `smiles_dir` WHERE `id` = '".$id."'"));
if ($user['level'] < 8) header("Location: index.php"); # Проверка доступа
if (empty($dir['id'])) header("Location: index.php");
if (isset($_POST['submit'])) {
if (!is_uploaded_file($_FILES['file']['tmp_name'])) $err = 'Не удается загрузить смайл';
$imageinfo = getimagesize($_FILES['file']['tmp_name']);
if($imageinfo['mime'] != 'image/gif')
{
$err = 'Смайл должен быть расширения .gif';
}
$ext = strtolower(substr(strrchr($_FILES['file']['name'], '.'), 1)); # Расширение
if ($ext != 'gif') $err = 'Недопустимое расширение (Разрешено <b>gif</b>)!';
if ($_FILES['file']['size'] == 0) $err = 'Не удается загрузить изображение';
$size = $_FILES['file']['size'];
if ($size > ($sett['max_size'] * 1024)) $err = 'Размер смайла превышает '.$sett['max_size'].' кб';
if (empty($nameSmile)) $err = 'Вы не ввели название смайла';
$q = mysql_fetch_assoc(mysql_query("SELECT * FROM `smiles_spis` WHERE `sim` = '.".$nameSmile.".'"));
if (isset($q['id'])) $err = 'Смайл с таким названием уже существует';
if (empty($err))
{
$name = 'smile_'.time();
@copy($_FILES['file']['tmp_name'],'smiles/'.$name.'.gif');
@chmod('smiles/'.$name.'.gif', 0644);
/*include_once ('class/upload.php');
$handle = new upload($_FILES['file']);
if ($handle -> uploaded) {
$handle -> file_new_name_body = $name;
$handle -> image_resize = true;
$handle -> image_ratio = true;
$handle -> image_ratio_no_zoom_in = true;
$handle -> image_y = 1000;
$handle -> image_x = 1000;
$handle -> file_overwrite = true;
}
$handle -> process('smiles/');
if ($handle -> processed) {
$handle -> clean();
} else $err = 'Ошибка при загрузке фото';
*/
mysql_query("INSERT INTO `smiles_spis` (`name`, `id_dir`, `sim`) values('".$name."', '".$dir['id']."', '".$nameSmile."')");
header("Location: smile.php?id=".$dir['id']);
}else{
echo $err;
}
} else {
?>Ошибочный запрос<?php
}
break;
}
///echo '<br />';
if (isset($_GET['act'])) echo gb.'<a href="'.H.'smile.php?">К категориям</a>'.div;
if (isset($_SESSION['r_m'])) echo gb.'<a href="'.H.'room.php?rm='.$_SESSION['r_m'].'">В чат</a>'.div;
echo gb.'<a href="'.H.'enter?">Прихожая</a>'.div;
foot();
?>