Файл: modules/diary/images.php
Строк: 110
<?php
/* DCMS Special
* Дата последнего редактирования 21.01.2016
* Модифицировал densnet
*/
foreach (array('start', 'compress', 'sess', 'settings', 'db_connect', 'ipua', 'fnc', 'user') as $inc) {
require_once "../../sys/inc/$inc.php";
}
$limit = 6;
if (isset($_GET['id']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `diary` WHERE `id`='" . intval($_GET['id']) . "' LIMIT 1"), 0) != 0) {
$diary = mysql_fetch_assoc(mysql_query("SELECT * FROM `diary` WHERE `id`='" . intval($_GET['id']) . "' LIMIT 1"));
$set['title'] = '' . $diary['name'] . ' - ' . lang('Изображения'); // заголовок страницы
require_once H . 'sys/inc/thead.php';
aut();
$us = get_user($diary['id_user']);
if (isset($user) && ($user['id'] == $us['id'] || $user['level'] > 2 && $user['level'] > $us['level'])) {
if (isset($_GET['img']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `diary_images` WHERE `id`='" . intval($_GET['img']) . "' AND `id_diary`='$diary[id]' LIMIT 1"), 0) != 0) {
$img = intval($_GET['img']);
if (isset($_GET['pos']) && ($_GET['pos'] == 'up' || $_GET['pos'] == 'down')) {
$pos = $_GET['pos'];
mysql_query("UPDATE `diary_images` SET `position`='$pos' WHERE `id`='$img' LIMIT 1");
$_SESSION['message'] = lang('Изменения сохранены');
header("Location: ?id=$diary[id]");
exit();
} elseif (isset($_GET['del'])) {
$ras = mysql_fetch_array(mysql_query("SELECT `ras` FROM `diary_images` WHERE `id`='$img' LIMIT 1"));
@unlink(H . "modules/diary/images/48/$img.$ras");
@unlink(H . "modules/diary/images/128/$img.$ras");
@unlink(H . "modules/diary/images/640/$img.$ras");
@unlink(H . "modules/diary/images/$img.$ras");
mysql_query("DELETE FROM `diary_images` WHERE `id`='" . intval($_GET['img']) . "' LIMIT 1");
$_SESSION['message'] = lang('Изображение успешно удалено');
header("Location: ?id=$diary[id]");
exit();
}
}
if (isset($_FILES['file']) && mysql_result(mysql_query("SELECT COUNT(*) FROM `diary_images` WHERE `id_diary`='$diary[id]' LIMIT 1"), 0) < $limit) {
if ($imgc = @imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name']))) {
$file = esc(stripcslashes(htmlspecialchars($_FILES['file']['name'])));
$ras = strtolower(preg_replace('#^.*.#', NULL, $file));
$img_x = imagesx($imgc);
$img_y = imagesy($imgc);
if (isset($_POST['position']) && ($_POST['position'] == 'up' || $_POST['position'] == 'down')) {
$position = $_POST['position'];
} else {
$err[] = lang('Ошибка позиции');
}
if ($img_x > $set['max_upload_foto_x'] || $img_y > $set['max_upload_foto_y']) {
$err[] = lang('Размер изображения превышает ограничения в') . ' ' . $set['max_upload_foto_x'] . '*' . $set['max_upload_foto_y'];
}
if (!isset($err)) {
mysql_query("INSERT INTO `diary_images` (`id_diary`, `position`, `ras`) values ('$diary[id]', '$position', '$ras')");
$id_image = mysql_insert_id();
if ($img_x == $img_y) {
$dstW = 48; // ширина
$dstH = 48; // высота
} elseif ($img_x > $img_y) {
$prop = $img_x / $img_y;
$dstW = 48;
$dstH = ceil($dstW / $prop);
} else {
$prop = $img_y / $img_x;
$dstH = 48;
$dstW = ceil($dstH / $prop);
}
$screen = imagecreatetruecolor($dstW, $dstH);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
//imagedestroy($imgc);
imagejpeg($screen, H . "modules/diary/images/48/$id_image.$ras", 90);
@chmod(H . "modules/diary/images/48/$id_image.$ras", 0777);
imagedestroy($screen);
if ($img_x == $img_y) {
$dstW = 128; // ширина
$dstH = 128; // высота
} elseif ($img_x > $img_y) {
$prop = $img_x / $img_y;
$dstW = 128;
$dstH = ceil($dstW / $prop);
} else {
$prop = $img_y / $img_x;
$dstH = 128;
$dstW = ceil($dstH / $prop);
}
$screen = imagecreatetruecolor($dstW, $dstH);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
//imagedestroy($imgc);
$screen = img_copyright($screen); // наложение копирайта
imagejpeg($screen, H . "modules/diary/images/128/$id_image.$ras", 90);
@chmod(H . "modules/diary/images/128/$id_image.$ras", 0777);
imagedestroy($screen);
if ($img_x > 640 || $img_y > 640) {
if ($img_x == $img_y) {
$dstW = 640; // ширина
$dstH = 640; // высота
} elseif ($img_x > $img_y) {
$prop = $img_x / $img_y;
$dstW = 640;
$dstH = ceil($dstW / $prop);
} else {
$prop = $img_y / $img_x;
$dstH = 640;
$dstW = ceil($dstH / $prop);
}
$screen = imagecreatetruecolor($dstW, $dstH);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
//imagedestroy($imgc);
$screen = img_copyright($screen); // наложение копирайта
imagejpeg($screen, H . "modules/diary/images/640/$id_image.$ras", 90);
imagedestroy($screen);
$imgc = img_copyright($imgc); // наложение копирайта
imagejpeg($imgc, H . "modules/diary/images/$id_image.$ras", 90);
@chmod(H . "modules/diary/images/$id_image.$ras", 0777);
} else {
$imgc = img_copyright($imgc); // наложение копирайта
imagejpeg($imgc, H . "modules/diary/images/640/$id_image.$ras", 90);
imagejpeg($imgc, H . "modules/diary/images/$id_image.$ras", 90);
@chmod(H . "modules/diary/images/$id_image.$ras", 0777);
}
@chmod(H . "modules/diary/images/640/$id_image.$ras", 0777);
imagedestroy($imgc);
$_SESSION['message'] = lang('Изображение успешно добавлено');
header("Location: ?id=$diary[id]");
exit();
}
} else {
$err = 'Выбранный Вами формат изображения не поддерживается';
}
}
err();
echo "<div class='list-group-item-null list-group-item-grey'>";
echo lang('Лимит изображений') . ": $limit ";
echo "</div>";
$q = mysql_query("SELECT * FROM `diary_images` WHERE `id_diary`='$diary[id]' ORDER BY `id` ASC");
while ($image = mysql_fetch_assoc($q)) {
echo "<table class='list-group-item-null'><tr><td class='icon14'>";
echo "<img src='images/48/$image[id].$image[ras]' />";
echo "</td><td class='null'>";
echo "<a href='?id=$diary[id]&img=$image[id]&del' style='float: right;' data-toggle='tooltip' data-placement='left' title='" . lang('Удалить') . "'><i class='fa fa-trash-o fa-fw'></i></a>";
echo lang('Позиция') . ':<br/>';
if ($image['position'] == 'up') {
echo "<b>" . lang('Вверху') . "</b>";
} else {
echo "<a href='?id=$diary[id]&img=$image[id]&pos=up'>" . lang('Вверху') . "</a>";
}
echo ' | ';
if ($image['position'] == 'down') {
echo "<b>" . lang('Внизу') . "</b>";
} else {
echo "<a href='?id=$diary[id]&img=$image[id]&pos=down'>" . lang('Внизу') . "</a>";
}
echo "</td></tr></table>";
}
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `diary_images` WHERE `id_diary`='$diary[id]' LIMIT 1"), 0) < $limit) {
echo '<form class="list-group-item-null" enctype="multipart/form-data" action="?id=' . $diary['id'] . '" method="post">';
$doc->File('file', 'Изображение');
echo lang('Позиция');
echo '<select name="position" class="form-control" style="width: 50%;">';
echo '<option value="up">Сверху</option>';
echo '<option value="down">Снизу</option>';
echo '</select><br/>';
$doc->Button('btn btn-primary btn-sm', null, 'upload', 'Выгрузить');
echo '</form>';
}
$doc->Link('list-group-item-null', "/modules/diary/$diary[name]/", 'arrow-left', 'Назад');
} else {
header("Location:/diary/$diary[name]/");
}
} else {
header("Location:index.php");
}
require_once H . 'sys/inc/tfoot.php';