Файл: panel/edit_cat.php
Строк: 81
<?php
/**
* Author: Elime;
* ICQ: 618878;
* E-mail: elime4@gmail.com;
*/
require '../system/core.php';
/* Проверяем права доступа */
if(!$login) message('Ошибка авторизации!', '/panel/login.php');
if(!check_right($user['id'], 3, $db)) message('Недостаточно прав!', '/panel/index.php');
/* Если не указана категория */
if(!isset($_GET['id']))
{
message('Вы не указали категорию!', '/panel/index.php');
}
/* Ищем категорию в БД */
$query = $db->query("SELECT * FROM `categories` WHERE `id`='".num($_GET['id'])."'");
if($db->num($query) != 1)
{
message('Указанная категория не найдена!', '/panel/index.php');
}
$result = $db->fetch($query);
/* Если введены данные */
if(isset($_POST['name']))
{
/* Устанавливаем переменные */
$name = in($_POST['name']);
$translit = in(translit($name));
$about = '';
$description = '';
$keywords = '';
/* Если не введено имя */
if(empty($name))
{
message('Введите название категории!');
}
/* Проверяем остальные поля */
if(isset($_POST['description']))
{
$description = in($_POST['description']);
}
if(isset($_POST['keywords']))
{
$keywords = in($_POST['keywords']);
}
if(isset($_POST['about']))
{
$about = in($_POST['about']);
}
/* Проверяем длину полей */
if(mb_strlen($name, 'utf-8') > 100)
{
message('Название категории не может быть больше 100 символов!');
}
if(mb_strlen($description, 'utf-8') > 255)
{
message('Описание категории не может быть больше 255 символов!');
}
if(mb_strlen($keywords, 'utf-8') > 255)
{
message('Ключевые слова для категории не могут быть больше 255 символов!');
}
if(mb_strlen($about, 'utf-8') > 200)
{
message('Описание для категории не может быть больше 200 символов!');
}
/* Если новое транслитное имя не равно предыдущему */
if($translit != $result['translit'])
{
/* Проверяем существование такой категории */
if(file_exists(ROOT.'/files/'.$translit))
{
message('Категория с таким именем уже существует!');
}
/* Переименовываем папку */
if(!rename(ROOT.'/files/'.$result['translit'], ROOT.'/files/'.$translit))
{
message('Произошла ошибка при переименовании категории!');
}
/* Обновляем пути к файлам */
$query2 = $db->query("SELECT * FROM `data` WHERE `cat_id`='".$result['id']."'");
while($result2 = $db->fetch($query2))
{
$new_translit = str_replace($result['translit'], $translit, $result2['translit']);
$new_file = str_replace('files/'.$result['translit'], 'files/'.$translit, $result2['file']);
$new_mini_scr = str_replace('files/'.$result['translit'], 'files/'.$translit, $result2['mini_scr']);
$new_scr = str_replace('files/'.$result['translit'], 'files/'.$translit, $result2['scr']);
$db->query("UPDATE `data` SET `translit`='".in($new_translit)."', `file`='".in($new_file)."', `mini_scr`='".in($new_mini_scr)."', `scr`='".$new_scr."' WHERE `id`='".$result2['id']."'");
}
}
/* Обновляем категорию */
$db->query("UPDATE `categories` SET `name`='".$name."', `translit`='".$translit."', `description`='".$description."', `keywords`='".$keywords."', `about`='".$about."' WHERE `id`='".$result['id']."'");
/* Записываем в логи кто изменил категорию */
$action = $user['login'].' изменил категорию: "'.$result['name'].'" на "'.$name.'".';
$db->query("INSERT INTO `users_log` SET `user_id`='".$user['id']."', `action`='".in($action)."', `time`='".time()."'");
/* Выводим сообщение */
message('Категория успешно изменена!', '/');
}
/* Выводим страницу */
$data['title'] = 'Изменить категорию';
$data['result'] = $result;
$tpl->display('panel/edit_cat', $data);
?>