Файл: modules/admin/smile.php
Строк: 214
<?
$title = 'Смайлы';
include_once($_SERVER["DOCUMENT_ROOT"].'/style/head.php');
level(1);
switch($_GET['act']){
default:
$q = $db->query("SELECT * FROM `smile_section`");
while($s = $q->fetch_assoc()){
?>
<div class="section"><a href="/admin/smile?act=section&id=<?=$s['id']?>"><?=htmlspecialchars($s['name'])?></a> <a href="/admin/smile?act=edit_section&id=<?=$s['id']?>">[Ред.]</a> <a href="/admin/smile?act=del_section&id=<?=$s['id']?>">[Уд.]</a></div>
<?
}
if($db->query("SELECT `id` FROM `smile_section`")->num_rows==0){
?>
<div class="error">Разделов пока нет!</div>
<?
}
?>
<div class="nvg"><a href="/admin/smile?act=new_section">Создать раздел</a></div>
<?
break;
case 'new_section':
if(isset($_POST['ok'])){
$_POST['name'] = guard($db->real_escape_string($_POST['name']));
if(mb_strlen($_POST['name'])<2 or mb_strlen($_POST['name'])>255){
error('Название раздела должно содержать не менее 2 и не более 255 символов!');
}
$db->query("INSERT INTO `smile_section` SET `name`='".$_POST['name']."'");
success('Раздел успешно создан!');
}
?>
<div class="title">Новый раздел</div>
<div class="text">
<form action="" method="POST">
Название:<br/>
<input type="text" name="name" placeholder="Введите название..."><br/>
<input type="submit" name="ok" value="Создать">
</form>
</div>
<?
break;
case 'edit_section':
$_GET['id'] = abs(intval($_GET['id']));
if($db->query("SELECT `id` FROM `smile_section` WHERE `id`='".$_GET['id']."'")->num_rows==0){
error('Раздела не существует!');
}
if(isset($_POST['ok'])){
$_POST['name'] = guard($db->real_escape_string($_POST['name']));
if(mb_strlen($_POST['name'])<2 or mb_strlen($_POST['name'])>255){
error('Название раздела должно содержать не менее 2 и не более 255 символов!');
}
$db->query("UPDATE `smile_section` SET `name`='".$_POST['name']."' WHERE `id`='".$_GET['id']."'");
success('Раздел успешно отредактирован!');
}
$section = $db->query("SELECT * FROM `smile_section` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
?>
<div class="title">Редактирование раздела</div>
<div class="text">
<form action="" method="POST">
Название:<br/>
<input type="text" name="name" value="<?=htmlspecialchars($section['name'])?>"><br/>
<input type="submit" name="ok" value="Изменить">
</form>
</div>
<?
break;
case 'del_section':
$_GET['id'] = abs(intval($_GET['id']));
if($db->query("SELECT `id` FROM `smile_section` WHERE `id`='".$_GET['id']."'")->num_rows==0){
error('Раздела не существует!');
}
$q = $db->query("SELECT * FROM `smile` WHERE `section`='".$_GET['id']."'");
while($s = $q->fetch_assoc()){
unlink('../../files/smile/'.$s['file']);
$db->queyr("DELETE FROM `smile` WHERE `id`='".$s['id']."'");
}
$db->query("DELETE FROM `smile_section` WHERE `id`='".$_GET['id']."'");
header('location:/admin/smile');
break;
case 'new_smile':
$_GET['id'] = abs(intval($_GET['id']));
if($db->query("SELECT `id` FROM `smile_section` WHERE `id`='".$_GET['id']."'")->num_rows==0){
error('Раздела не существует!');
}
if(isset($_POST['ok'])){
$_POST['name'] = guard($db->real_escape_string($_POST['name']));
if(mb_strlen($_POST['name'])<2 or mb_strlen($_POST['name'])>255){
error('Название смайла должно содержать не менее 2 и не более 255 символов.');
}
if($_POST['imp']==imp){
$_POST['import'] = guard($db->real_escape_string($_POST['import']));
if (!@fopen($_POST['import'], 'r')){
error('Файла не существует!');
}
$gh = get_headers($_POST['import'], 1);
$maxsize = 100; // Максимальный размер файла,в мегабайтах
$size = $gh['Content-Length']; // Вес файла
if ($size > (1048576 * $maxsize)){
error('Допустимый размер загружаемого файла '.$maxsize.' мб.');
}
$info_url = pathinfo($_POST['import']);
$filetype = array(
'jpg',
'gif',
'png',
'jpeg');
/* Если тип файла не подходит */
if (!in_array($info_url['extension'], $filetype))
{
error('Тип файла не подходит!');
}
$file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.time().'.'.$info_url['extension'];
if (!copy($_POST['import'], '../../files/smile/'.$file.'')){
error('Ошибка в копировании на сервер!');
}
$db->query("INSERT INTO `smile` SET `name`='".$_POST['name']."', `section`='".$_GET['id']."', `file`='".$file."'");
success('Смайл успешно добавлен!');
}else{
$size = $_FILES['file']['size'];
$max = 100;
$filetype = array(
'jpg',
'gif',
'png',
'jpeg');
$upfiletype = substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".") + 1);
if(!@file_exists($_FILES['file']['tmp_name']) AND $_POST['imp']!=imp){
error('Выберите файл!');
}elseif($size > (1048576 * $max)){
error('Вес файла должен быть не более '.$max.' мб.');
}elseif(!in_array($upfiletype, $filetype)){
error('Файл данного формата загржать запрещено!');
}
$file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.$_FILES['file']['name'];
move_uploaded_file($_FILES['file']['tmp_name'], "../../files/smile/".$file."");
$db->query("INSERT INTO `smile` SET `name`='".$_POST['name']."', `section`='".$_GET['id']."', `file`='".$file."'");
success('Смайл успешно добавлен!');
}
}
?>
<div class="title">Добавление смайла</div>
<div class="text">
<form action="" method="POST" enctype="multipart/form-data">
Название:<br/>
<input type="text" name="name" placeholder="Введите название"><br/>
*Выберите файл:<br/>
<input type="file" name="file"><br/>
<input type="radio" name="imp" value="imp"> Импорт:<br/>
Файл:<br/>
<input type="text" name="import" value="http://"><br/>
<input type="submit" name="ok" value="Добавить">
</form>
</div>
<?
break;
case 'edit_smile':
$_GET['id'] = abs(intval($_GET['id']));
if($db->query("SELECT `id` FROM `smile` WHERE `id`='".$_GET['id']."'")->num_rows==0){
error('Смайла не существует!');
}
if(isset($_POST['okf'])){
$smile = $db->query("SELECT `file` FROM `smile` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
if($_POST['imp']==imp){
$_POST['import'] = guard($db->real_escape_string($_POST['import']));
if (!@fopen($_POST['import'], 'r')){
error('Файла не существует!');
}
$gh = get_headers($_POST['import'], 1);
$maxsize = 100; // Максимальный размер файла,в мегабайтах
$size = $gh['Content-Length']; // Вес файла
if ($size > (1048576 * $maxsize)){
error('Допустимый размер загружаемого файла '.$maxsize.' мб.');
}
$info_url = pathinfo($_POST['import']);
$filetype = array(
'jpg',
'gif',
'png',
'jpeg');
/* Если тип файла не подходит */
if (!in_array($info_url['extension'], $filetype))
{
error('Тип файла не подходит!');
}
$file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.time().'.'.$info_url['extension'];
unlink('../../files/smile/'.$smile['file']);
if (!copy($_POST['import'], '../../files/smile/'.$file.'')){
error('Ошибка в копировании на сервер!');
}
$db->query("UPDATE `smile` SET `file`='".$file."' WHERE `id`='".$_GET['id']."'");
success('Смайл успешно обновлён.');
}else{
$size = $_FILES['file']['size'];
$max = 100;
$filetype = array(
'jpg',
'gif',
'png',
'jpeg');
$upfiletype = substr($_FILES['file']['name'], strrpos($_FILES['file']['name'], ".") + 1);
if(!@file_exists($_FILES['file']['tmp_name']) AND $_POST['imp']!=imp){
error('Выберите файл!');
}elseif($size > (1048576 * $max)){
error('Вес файла должен быть не более '.$max.' мб.');
}elseif(!in_array($upfiletype, $filetype)){
error('Файл данного формата загржать запрещено!');
}
$file = $_SERVER["HTTP_HOST"].'_'.rand(0,999999).'_'.$_FILES['file']['name'];
unlink('../../files/smile/'.$smile['file']);
move_uploaded_file($_FILES['file']['tmp_name'], "../../files/smile/".$file."");
$db->query("UPDATE `smile` SET `file`='".$file."' WHERE `id`='".$_GET['id']."'");
success('Смайл успешно обновлён.');
}
}
if(isset($_POST['ok'])){
$_POST['name'] = guard($db->real_escape_string($_POST['name']));
if(mb_strlen($_POST['name'])<2 or mb_strlen($_POST['name'])>255){
error('Название смайла должно содержать не менее 2 и не более 255 символов.');
}
$db->query("UPDATE `smile` SET `name`='".$_POST['name']."' WHERE `id`='".$_GET['id']."'");
success('Название успешно изменено.');
}
$smile = $db->query("SELECT * FROM `smile` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
?>
<div class="title">Редактирование смайла</div>
<div class="text">
<img src="/files/smile/<?=$smile['file']?>"><br/>
<form action="" method="POST">
Название:<br/>
<input type="text" name="name" value="<?=htmlspecialchars($smile['name'])?>"><br/>
<input type="submit" name="ok" value="Сохранить">
</form>
</div>
<div class="title">Замена смайла</div>
<div class="text">
<form action="" method="POST" enctype="multipart/form-data">
*Выберите файл:<br/>
<input type="file" name="file"><br/>
<input type="radio" name="imp" value="imp"> Импорт:<br/>
Файл:<br/>
<input type="text" name="import" value="http://"><br/>
<input type="submit" name="okf" value="Добавить">
</form>
</div>
<?
break;
case 'del_smile':
$_GET['id'] = abs(intval($_GET['id']));
if($db->query("SELECT `id` FROM `smile` WHERE `id`='".$_GET['id']."'")->num_rows==0){
error('Смайла не существует!');
}
$smile = $db->query("SELECT * FROM `smile` WHERE `id`='".$_GET['id']."'")->fetch_assoc();
$db->query("DELETE FROM `smile` WHERE `id`='".$_GET['id']."'");
unlink('../../files/smile/'.$smile['file']);
header('location:/admin/smile?act=section&id='.$smile['section']);
break;
case 'section':
$_GET['id'] = abs(intval($_GET['id']));
if($db->query("SELECT `id` FROM `smile_section` WHERE `id`='".$_GET['id']."'")->num_rows==0){
error('Раздела не существует!');
}
$nav=new navig("SELECT * FROM `smile` WHERE `section`='".$_GET['id']."'");
$q=$db->query('SELECT * FROM `smile` WHERE `section`='.$_GET['id'].' ORDER BY `id` DESC LIMIT '.$nav->start.','.$nav->nstr);
while($s=$q->fetch_assoc()){
?>
<div class="section"><img src="/files/smile/<?=$s['file']?>"> - <?=htmlspecialchars($s['name'])?><br/>
<a href="/admin/smile?act=edit_smile&id=<?=$s['id']?>">[Ред.]</a> <a href="/admin/smile?act=del_smile&id=<?=$s['id']?>">[Уд.]</a></div>
<?
}
?>
<div class="nvgstr">
<?
$nav->panel();
?>
</div>
<?
if($db->query("SELECT `id` FROM `smile` WHERE `section`='".$_GET['id']."'")->num_rows==0){
?>
<div class="error">Смайлов пока нет.</div>
<?
}
?>
<div class="nvg"><a href="/admin/smile?act=new_smile&id=<?=$_GET['id']?>">Добавить смайл</a></div>
<?
break;
}
include_once($_SERVER["DOCUMENT_ROOT"].'/style/foot.php');
?>