Файл: modules/diary/images.php
Строк: 105
<?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'>";
        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-komm'><tr><td class='icon14'>";
            echo'<img src="/modules/diary/images/48/' . $image['id'] . '.' . $image['ras'] . '" alt=""/>';
            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 'Позиция:<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" 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', "/modules/diary/$diary[name]/", 'arrow-left', 'Назад');
    } else {
        header("Location:/diary/$diary[name]/");
    }
} else {
    header("Location:index.php");
}
require_once H . 'sys/inc/tfoot.php';