Файл: modules/foto/inc/gallery_show.php
Строк: 360
<?php
/* DCMS Special
 * Дата последнего редактирования 11.12.2015
 * Модифицировал densnet
 */
if ((access('foto_alb_del') || isset($user) && $user['id'] == $ank['id']) && isset($_GET['act']) && $_GET['act'] == 'edit') {
    if (isset($_GET['ok']) && isset($_POST['name']) && isset($_POST['opis'])) {
        $name = esc(stripcslashes(htmlspecialchars($_POST['name'])), 1);
        if (utf8_strlen($name) < 3) {
            $err[] = 'Короткое название';
        }
        if (utf8_strlen($name) > 32) {
            $err[] = 'Название не должно быть длиннее 32-х символов';
        }
        $name = mysql_real_escape_string($name);
        $msg = $_POST['opis'];
//if (utf8_strlen($msg)<10)$err='Короткое описание';
        if (utf8_strlen($msg) > 256) {
            $err[] = 'Длина описания превышает предел в 256 символов';
        }
        $msg = mysql_real_escape_string($msg);
        if (mysql_result(mysql_query("SELECT COUNT(*) FROM `gallery` WHERE `id_user` = '$ank[id]' AND `name` = '$name' AND `id` != '$gallery[id]'"), 0) != 0) {
            $err[] = 'Альбом с таким названием уже существует';
        }
        if (in_array($_POST['access'], array('all', 'only_me', 'friends', 'pass', 'auth'))) {
            $access = $_POST['access'];
        } else {
            $access = 'all';
        }
        if ($access == 'pass') {
            if (utf8_strlen($_POST['passwd']) < 1) {
                $err[] = 'Введите пароль!';
            }
            if (utf8_strlen($_POST['passwd']) > 16) {
                $err[] = 'Пароль слишком длинный!';
            }
            $password = $_POST['passwd'];
        } else {
            $password = NULL;
        }
        if (!isset($err)) {
            if ($user['id'] != $ank['id']) {
                admin_log('Фотогалерея', 'Фотоальбомы', "Редактирование фотоальбома пользователя '[url=/info.php?id=$ank[id]]$ank[nick][/url]'");
            }
            mysql_query("UPDATE `gallery` SET `opis` = '$msg', `name` = '$name', `access` = '$access', `password` = '$password' WHERE `id` = '$gallery[id]'");
            header("Location: " . DIR_FOTO . "$ank[id]/$gallery[id]/");
            exit();
        }
    }
    $new_gallery_access = $gallery['access'];
    err();
    #Навигация
    echo "<nav class='navbar navbar-light' style='background-color: #607D8B; color: #fff;'>";
    echo "<ul class='nav navbar-nav'>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='/'><i class='material-icons'>home</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='" . DIR_FOTO . "'>Фотоальбомы</a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='" . DIR_FOTO . "$ank[id]/'>Альбомы $ank[nick]</a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='" . DIR_FOTO . "$ank[id]/$gallery[id]/'>$gallery[name]</a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'>Редактирование</a></li>";
    echo "</ul>";
    echo "</nav>";
    echo "<form action='?act=edit&ok' class='list-group-item' method="post">";
    echo "<div class='row'>";
    echo "<div class='input-field col s12'>";
    echo "<input id='name' name='name' length='32' type='text' value='$gallery[name]' class='validate'>";
    echo "<label for='name'>Название альбома</label>";
    echo "</div>";
    echo "</div>";
    echo "<div class='row'>";
    echo "<div class='input-field col s12'>";
    echo "<textarea name='opis' id='opis' length='256' class='materialize-textarea'>$gallery[opis]</textarea>";
    echo "<label for='opis'>Описание альбома</label>";
    echo "</div>";
    echo "</div>";
    echo "Доступ:<br />";
    echo "<input class='with-gap' name='access' type='radio' " . ($new_gallery_access == 'all' ? " checked='checked'" : null) . " id='all' value='all' /><label for='all'><i class='material-icons'>public</i> Всем</label><br />";
    echo "<input class='with-gap' name='access' type='radio' " . ($new_gallery_access == 'only_me' ? " checked='checked'" : null) . " id='only_me' value='only_me' /><label for='only_me'><i class='material-icons'>lock</i> Только мне</label><br />";
    echo "<input class='with-gap' name='access' type='radio' " . ($new_gallery_access == 'auth' ? " checked='checked'" : null) . " id='auth' value='auth' /><label for='auth'><i class='material-icons'>person</i> Только авторизованным</label><br />";
    echo "<input class='with-gap' name='access' type='radio' " . ($new_gallery_access == 'friends' ? " checked='checked'" : null) . " id='friends' value='friends' /><label for='friends'><i class='material-icons'>group</i> Только друзьям</label><br />";
    echo "<input class='with-gap' name='access' type='radio' " . ($new_gallery_access == 'pass' ? " checked='checked'" : null) . " id='pass' value='pass' /><label for='pass'><i class='material-icons'>vpn_key</i> Только по паролю</label><br />";
    echo "<div class='row'>";
    echo "<div class='input-field col s12'>";
    echo "<input id='password' name='password' length='16' type='text' value='$gallery[password]' class='validate'>";
    echo "<label for='password'>Пароль альбома</label>";
    echo "</div>";
    echo "</div>";
    echo "<button class='waves-effect waves-light btn'><i class='material-icons'>save</i> Сохранить</button> ";
    echo "<a class='waves-effect waves-light btn btn-secondary' href='?'>Отмена</a>";
    echo "</form>";
    require_once H . 'sys/inc/tfoot.php';
    exit;
}
if ((access('foto_alb_del') || isset($user) && $user['id'] == $ank['id']) && isset($_GET['act']) && $_GET['act'] == 'delete') {
    if (isset($_GET['ok'])) {
        $q = mysql_query("SELECT * FROM `gallery_foto` WHERE `id_gallery` = '$gallery[id]'");
        while ($post = mysql_fetch_assoc($q)) {
            @unlink(H . "sys/gallery/48/$post[id].jpg");
            @unlink(H . "sys/gallery/128/$post[id].jpg");
            @unlink(H . "sys/gallery/640/$post[id].jpg");
            @unlink(H . "sys/gallery/foto/$post[id].jpg");
            mysql_query("DELETE FROM `gallery_foto` WHERE `id` = '$post[id]' LIMIT 1");
        }
        if ($user['id'] != $ank['id']) {
            admin_log('Фотогалерея', 'Фотоальбомы', "Удаление альбома $gallery[name] (фотографий: " . mysql_num_rows($q) . ")");
        }
        mysql_query("DELETE FROM `gallery` WHERE `id` = '$gallery[id]' LIMIT 1");
        header("Location: " . DIR_FOTO . "$ank[id]/");
        exit;
    }
    err();
    #Навигация
    echo "<nav class='navbar navbar-light' style='background-color: #607D8B; color: #fff;'>";
    echo "<ul class='nav navbar-nav'>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='/'><i class='material-icons'>home</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='" . DIR_FOTO . "'>Фотоальбомы</a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='" . DIR_FOTO . "$ank[id]/'>Альбомы $ank[nick]</a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='" . DIR_FOTO . "$ank[id]/$gallery[id]/'>$gallery[name]</a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'>Удаление</a></li>";
    echo "</ul>";
    echo "</nav>";
    echo "<form action='?act=delete&ok' class='list-group-item' method="post">";
    echo "Подтвердите удаление фотоальбома<br />n";
    echo "<button class='waves-effect waves-light btn'><i class='material-icons'>delete</i> Удалить</button> ";
    echo "<a class='waves-effect waves-light btn btn-secondary' href='?'>Отмена</a>";
    echo "</form>";
    require_once H . 'sys/inc/tfoot.php';
    exit;
}
if (isset($user) && $user['id'] == $ank['id'] && isset($_GET['act']) && $_GET['act'] == 'upload') {
    if (isset($_FILES['file'])) {
        if ($imgc = @imagecreatefromstring(file_get_contents($_FILES['file']['tmp_name']))) {
            $name = esc(stripcslashes(htmlspecialchars($_POST['name'])), 1);
            if ($name == null) {
                $name = esc(stripcslashes(htmlspecialchars(preg_replace('#.[^.]*$#i', NULL, $_FILES['file']['name']))));
            }
            if (!preg_match("#^([A-zА-я0-9-_ ])+$#ui", $name)) {
                $err = 'В названии фото присутствуют запрещенные символы';
            }
            if (utf8_strlen($name) < 3) {
                $err = 'Короткое название';
            }
            if (utf8_strlen($name) > 100) {
                $err = 'Название не должно быть длиннее 100 символов';
            }
            $name = mysql_real_escape_string($name);
            $msg = $_POST['opis'];
            #if (utf8_strlen($msg)<10)$err='Короткое описание';
            if (utf8_strlen($msg) > 10024) {
                $err = 'Длина описания превышает предел в 10024 символов';
            }
            $msg = mysql_real_escape_string($msg);
            $img_x = imagesx($imgc);
            $img_y = imagesy($imgc);
            if ($img_x > $set['max_upload_foto_x'] || $img_y > $set['max_upload_foto_y']) {
                $err = 'Размер изображения превышает ограничения в ' . $set['max_upload_foto_x'] . '*' . $set['max_upload_foto_y'];
            }
            if (isset($_POST['adult']) && $_POST['adult'] == 1) {
                $adult = 1;
            } else {
                $adult = 0;
            }
            if (!isset($err)) {
                mysql_query("INSERT INTO `gallery_foto` (`id_gallery`, `name`, `ras`, `type`, `opis`, `id_user`, `adult`) values ('$gallery[id]', '$name', 'jpg', 'image/jpeg', '$msg', '$user[id]', '$adult')");
                $id_foto = mysql_insert_id();
                mysql_query("UPDATE `gallery` SET `time` = '$time' WHERE `id` = '$gallery[id]' LIMIT 1");
                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 . "sys/gallery/48/$id_foto.jpg", 90);
                @chmod(H . "sys/gallery/48/$id_foto.jpg", 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 . "sys/gallery/128/$id_foto.jpg", 90);
                @chmod(H . "sys/gallery/128/$id_foto.jpg", 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 . "sys/gallery/640/$id_foto.jpg", 90);
                    imagedestroy($screen);
                    $imgc = img_copyright($imgc); // наложение копирайта
                    imagejpeg($imgc, H . "sys/gallery/foto/$id_foto.jpg", 90);
                    @chmod(H . "sys/gallery/foto/$id_foto.jpg", 0777);
                } else {
                    $imgc = img_copyright($imgc); // наложение копирайта
                    imagejpeg($imgc, H . "sys/gallery/640/$id_foto.jpg", 90);
                    imagejpeg($imgc, H . "sys/gallery/foto/$id_foto.jpg", 90);
                    @chmod(H . "sys/gallery/foto/$id_foto.jpg", 0777);
                }
                @chmod(H . "sys/gallery/640/$id_foto.jpg", 0777);
                imagedestroy($imgc);
                header("Location: " . DIR_FOTO . "$ank[id]/$gallery[id]/$id_foto");
                exit();
            }
        } else {
            $err = 'Выбранный Вами формат изображения не поддерживается';
        }
    }
    err();
#Навигация
    echo "<nav class='navbar navbar-light' style='background-color: #607D8B; color: #fff;'>";
    echo "<ul class='nav navbar-nav'>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='/'><i class='material-icons'>home</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='" . DIR_FOTO . "'>Фотоальбомы</a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='" . DIR_FOTO . "$ank[id]/'>Альбомы $ank[nick]</a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link' href='" . DIR_FOTO . "$ank[id]/$gallery[id]/'>$gallery[name]</a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'><i class='material-icons'>keyboard_arrow_right</i></a></li>";
    echo "<li class='nav-item' style='margin-left: 1px;'><a class='nav-link'>Новое фото</a></li>";
    echo "</ul>";
    echo "</nav>";
    echo "<form name='add' enctype='multipart/form-data' class='list-group-item' action='?act=upload&ok' method='post'>";
    echo "<div class='row'>";
    echo "<div class='input-field col s12'>";
    echo "<input id='name' name='name' length='100' type='text' value='' class='validate'>";
    echo "<label for='name'>Название</label>";
    echo "</div>";
    echo "</div>";
    echo "<div class='switch'>";
    echo "<label><input type='checkbox' name='adult' value='1'><span class='lever'></span>Фото для взрослых</label>";
    echo "</div>";
    echo "<div class='file-field input-field'>";
    echo "<div class='btn'><span>Файл</span>";
    echo "<input name='file' type='file' multiple>";
    echo "</div>";
    echo "<div class='file-path-wrapper'>";
    echo "<input class='file-path validate' type='text' placeholder='Выберите изображение'>";
    echo "</div>";
    echo "</div>";
    echo "<div class='row'>";
    echo "<div class='input-field col s12'>";
    echo "<textarea name='opis' id='opis' length='256' class='materialize-textarea'></textarea>";
    echo "<label for='opis'>Описание альбома</label>";
    echo "</div>";
    echo "</div>";
    echo '<b>Размещаемые на Сайте Фото не должны:</b><br />';
    echo '* нарушать действующее законодательство, честь и достоинство, права и охраняемые законом интересы третьих лиц, способствовать разжиганию религиозной, расовой или межнациональной розни, содержать сцены насилия, либо бесчеловечного обращения с животными, и т.д.;<br />';
    echo '* носить непристойный или оскорбительный характер;<br />';
    echo '* содержать рекламу наркотических средств;<br />';
    echo '* нарушать права несовершеннолетних лиц;<br />';
    echo '* нарушать авторские и смежные права третьих лиц;<br />';
    echo '* носить порнографический характер;<br />';
    echo '* содержать коммерческую рекламу в любом виде.<br />';
    echo "<button class='waves-effect waves-light btn'><i class='material-icons'>file_upload</i> Выгрузить</button> ";
    echo "<a class='waves-effect waves-light btn btn-secondary' href='?'>Отмена</a>";
    echo "</form>";
    require_once H . 'sys/inc/tfoot.php';
    exit;
}