Файл: panel/edit_file.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'], 5, $db)) message('Недостаточно прав!', '/panel/index.php');
/* Если не указан файл */
if(!isset($_GET['id']))
{
message('Вы не указали файл!', '/panel/index.php');
}
/* Ищем указанный файл в БД */
$query = $db->query("SELECT * FROM `data` WHERE `id`='".num($_GET['id'])."'");
if($db->num($query) != 1)
{
message('Указанный файл не найден!', '/panel/index.php');
}
$result = $db->fetch($query);
/* Берем информацию о категории в которой находится файл */
$query2 = $db->query("SELECT * FROM `categories` WHERE `id`='".$result['cat_id']."'");
$result2 = $db->fetch($query2);
/* Если введены данные */
if(isset($_POST['name']))
{
/* Устанавливаем переменные */
$name = in($_POST['name']);
$tag = in($_POST['tag']);
$translit = in($result2['translit'].'/'.translit($name));
$description = '';
$keywords = '';
$about = '';
/* Если пустое имя */
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') > 500)
{
message('Описание файла не может быть больше 500 символов!');
}
/* Если новое транслитное имя не равно старому */
if($translit != $result['translit'])
{
/* Если такой файл уже существует */
if(file_exists(ROOT.'/files/'.$translit))
{
message('Файл с таким именем уже существует!');
}
/* Переименовываем папку с файлом */
if(!rename(ROOT.'/files/'.$result['translit'], ROOT.'/files/'.$translit))
{
message('Произошла ошибка при переименовании файла!');
}
/* Обновляем пути к файлам */
$old_file = str_replace('files/'.$result['translit'], 'files/'.$translit, $result['file']);
$new_file = 'files/'.$translit.'/'.$config['prefix'].translit($name).'.'.$result['format'];
$new_mini_scr = str_replace('files/'.$result['translit'], 'files/'.$translit, $result['mini_scr']);
$new_scr = str_replace('files/'.$result['translit'], 'files/'.$translit, $result['scr']);
rename(ROOT.'/'.$old_file, ROOT.'/'.$new_file);
/* Обновляем БД */
$db->query("UPDATE `data` SET `file`='".in($new_file)."', `mini_scr`='".in($new_mini_scr)."', `scr`='".$new_scr."' WHERE `id`='".$result['id']."'");
}
/* Обновляем информацию о файле в БД */
$db->query("UPDATE `data` SET `name`='".$name."', `translit`='".$translit."', `description`='".$description."', `keywords`='".$keywords."', `about`='".$about."', `tag`='".$tag."' 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('Файл успешно изменен!', '/'.$translit.'.html');
}
/* Выводим страницу */
$data['title'] = 'Изменить файл';
$data['result'] = $result;
$tpl->display('panel/edit_file', $data);
?>