<?php

/* DCMS Special
 * Дата последнего редактирования 09.10.2016
 * Модифицировал densnet
 */

if ((access('foto_alb_del') || isset($user) && $user['id'] == $ank['id']) && isset($_GET['act']) && $_GET['act'] == 'delete') {
    if (isset($_GET['ok'])) {
        $q = $db->query("SELECT * FROM `gallery_foto` WHERE `id_gallery` = '$gallery[id]'");
        while ($post = $db->get_row($q)) {
            @unlink(H . "sys/gallery/50/$post[id].jpg");
            @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");

            $db->query("DELETE FROM `gallery_foto` WHERE `id` = '$post[id]' LIMIT 1");
            $db->query("DELETE FROM `gallery_frend` WHERE `id_foto` = '$post[id]'");
        }
        if ($user['id'] != $ank['id']) {
            admin_log(lang('Фотогалерея'), lang('Фотоальбомы'), lang('Удаление альбома') . " $gallery[name] (" . lang('фотографий') . ": " . $db->num_rows($q) . ")");
        }
        $db->query("DELETE FROM `gallery` WHERE `id` = '$gallery[id]' LIMIT 1");
        $_SESSION['message'] = lang('Альбом успешно удален');
        header("Location: " . DIR_FOTO . "$ank[id]/");
        exit;
    }
    err();

    #Навигация
    echo "<div class='list-group-item-null list-group-item-grey'><small>";
    echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FOTO . "'>" . lang('Фотоальбомы') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FOTO . "$ank[id]/'>" . lang('Альбомы') . " $ank[nick]</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FOTO . "$ank[id]/$gallery[id]/'>" . cutStr($gallery['name'], 30) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo lang('Удаление');
    echo "</small></div><br />";

    echo "<form action='?act=delete&amp;ok' class='list-group-item-null' method=\"post\">";

    echo lang('Подтвердите удаление фотоальбома') . "<br />\n";

    $doc->Button('btn btn-success btn-sm', null, 'trash-o', 'Удалить');
    $doc->Link('btn btn-secondary btn-sm', '?', null, 'Отмена');

    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'] == 'edit') {
    if (isset($_GET['ok']) && isset($_POST['name']) && isset($_POST['opis'])) {
        $name = esc(stripcslashes(htmlspecialchars($_POST['name'])), 1);

        if (utf8_strlen($name) < 3) {
            $err[] = lang('Короткое название');
        }

        if (utf8_strlen($name) > 32) {
            $err[] = lang('Название не должно быть длиннее 32-х символов');
        }

        $name = $db->safesql($name);
        $msg = $_POST['opis'];

        if (utf8_strlen($msg) > 256) {
            $err[] = lang('Длина описания превышает предел в 256 символов');
        }

        $msg = $db->safesql($msg);

        $q = $db->super_query("SELECT COUNT(*) as count FROM `gallery` WHERE `id_user` = '$ank[id]' AND `name` = '$name' AND `id` != '$gallery[id]'");
        if ($q['count'] != 0) {
            $err[] = lang('Альбом с таким названием уже существует');
        }

        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['key']) < 1) {
                $err[] = lang('Введите пароль');
            }
            if (utf8_strlen($_POST['key']) > 16) {
                $err[] = lang('Пароль слишком длинный');
            }
            $password = $_POST['key'];
        } else {
            $password = NULL;
        }

        if (!isset($err)) {
            if ($user['id'] != $ank['id']) {
                admin_log(lang('Фотогалерея'), lang('Фотоальбомы'), "" . lang('Редактирование фотоальбома пользователя') . " '[url=/id$ank[id]]$ank[nick][/url]'");
            }
            $db->query("UPDATE `gallery` SET `opis` = '$msg', `name` = '$name', `access` = '$access', `password` = '$password' WHERE `id` = '$gallery[id]'");
            $_SESSION['message'] = lang('Изменения сохранены');

            header("Location: " . DIR_FOTO . "$ank[id]/$gallery[id]/");
            exit();
        }
        unset($access);
    }

    $access = $gallery['access'];

    err();

    #Навигация
    echo "<div class='list-group-item-null list-group-item-grey'><small>";
    echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FOTO . "'>" . lang('Фотоальбомы') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FOTO . "$ank[id]/'>" . lang('Альбомы') . " $ank[nick]</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FOTO . "$ank[id]/$gallery[id]/'>" . cutStr($gallery['name'], 30) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo lang('Редактирование');
    echo "</small></div><br />";

    echo "<form action='?act=edit&amp;ok' class='list-group-item-null' method=\"post\">";

    $doc->Input('name', 'Название альбома', 32, "$gallery[name]");
    $doc->Textarea('opis', 'Описание альбома', 256, "$gallery[opis]");

    echo "<br /><b>" . lang('Кому доступен альбом') . "?</b><br />";
    $doc->Radio('access', 'Всем', 'all', "" . ($access == 'all' ? " checked='checked'" : null) . "", 'unlock');
    $doc->Radio('access', 'Только мне', 'only_me', "" . ($access == 'only_me' ? " checked='checked'" : null) . "", 'lock');
    $doc->Radio('access', 'Только авторизованным', 'auth', "" . ($access == 'auth' ? " checked='checked'" : null) . "", 'user');
    $doc->Radio('access', 'Только друзьям', 'friends', "" . ($access == 'friends' ? " checked='checked'" : null) . "", 'users');
    $doc->Radio('access', 'Только по паролю', 'pass', "" . ($access == 'pass' ? " checked='checked'" : null) . "", 'key');
    $doc->Input('key', 'Пароль альбома', 16, "$gallery[password]");
    echo "<br />";

    $doc->Button('btn btn-success btn-sm', null, 'save', 'Сохранить');
    $doc->Link('btn btn-secondary btn-sm', '?', null, 'Отмена');

    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 = lang('В названии фото присутствуют запрещенные символы');
            }
            if (utf8_strlen($name) < 3) {
                $err = lang('Короткое название');
            }
            if (utf8_strlen($name) > 100) {
                $err = lang('Название не должно быть длиннее 100 символов');
            }
            $name = $db->safesql($name);
            $msg = $_POST['opis'];

            #if (utf8_strlen($msg)<10)$err='Короткое описание';
            if (utf8_strlen($msg) > 10024) {
                $err = lang('Длина описания превышает предел в 10024 символов');
            }
            $msg = $db->safesql($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 = lang('Размер изображения превышает ограничения в') . ' ' . $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)) {
                $db->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 = $db->insert_id();
                $db->query("UPDATE `gallery` SET `time` = '$time' WHERE `id` = '$gallery[id]' LIMIT 1");

                $q = $db->query("SELECT * FROM `friends` WHERE `user` = '$user[id]' AND `i` = '1'");
                $fot_id = $id_foto;

                while ($f = $db->get_array($q)) {
                    $a = $db->get_array($db->query("SELECT * FROM `user` WHERE `id` = '$f[friends]' LIMIT 1"));
                    $msg_lenta = "$SexDob новое [url=" . DIR_FOTO . "$ank[id]/$gallery[id]/$fot_id/]фото[/url]";

                    $db->query("INSERT INTO `notifications` (`id_user`, `id_kont`, `msg`, `time`) values('$user[id]', '$a[id]', '" . $db->safesql($msg_lenta) . "', '$time')");
                }

                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);
                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);

                $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);

                    $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);

                crop(H . "sys/gallery/640/$id_foto.jpg", H . "sys/gallery/avatar/$id_foto.tmp.jpg");
                resize(H . "sys/gallery/avatar/$id_foto.tmp.jpg", H . "sys/gallery/avatar/$id_foto.jpg", 150, 150);

                @chmod(H . "sys/gallery/avatar/$id_foto.jpg", 0777);
                @unlink(H . "sys/gallery/avatar/$id_foto.tmp.jpg");

                resize(H . "sys/gallery/avatar/$id_foto.jpg", H . "sys/gallery/50/$id_foto.jpg", 50, 50);

                @chmod(H . "sys/gallery/50/$id_foto.jpg", 0777);

                $_SESSION['message'] = lang('Фотография успешно добавлена');
                header("Location: " . DIR_FOTO . "$ank[id]/$gallery[id]/");
                exit();
            }
        } else {
            $err = lang('Выбранный Вами формат изображения не поддерживается');
        }
    }

    err();

    #Навигация
    echo "<div class='list-group-item-null list-group-item-grey'><small>";
    echo "<a href='/' class='hint--right' data-hint='" . lang('На главную') . "'><i class='fa fa-home fa-lg'></i></a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FOTO . "'>" . lang('Фотоальбомы') . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FOTO . "$ank[id]/'>" . lang('Альбомы') . " $ank[nick]</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo "<a href='" . DIR_FOTO . "$ank[id]/$gallery[id]/'>" . cutStr($gallery['name'], 30) . "</a> <i class='fa fa-angle-right fa-fw'></i> ";
    echo lang('Новое фото');
    echo "</small></div><br />";

    echo "<form name='add' enctype='multipart/form-data' class='list-group-item-null' action='?act=upload&amp;ok' method='post'>";

    $doc->Input('name', 'Название', 100);
    echo "<br />";
    $doc->Checkbox('adult', '18+', 1);
    echo "<br />";
    $doc->File('file', 'Файл', 'Выберите изображение');
    $doc->Textarea('opis', 'Описание альбома', 256);

    echo "<b>" . lang('Размещаемые на Сайте Фото не должны') . ":</b><br />";
    echo '* ' . lang('нарушать действующее законодательство, честь и достоинство, права и охраняемые законом интересы третьих лиц, способствовать разжиганию религиозной, расовой или межнациональной розни, содержать сцены насилия, либо бесчеловечного обращения с животными, и т.д.') . '<br />';
    echo '* ' . lang('носить непристойный или оскорбительный характер') . '<br />';
    echo '* ' . lang('содержать рекламу наркотических средств') . '<br />';
    echo '* ' . lang('нарушать права несовершеннолетних лиц') . '<br />';
    echo '* ' . lang('нарушать авторские и смежные права третьих лиц') . '<br />';
    echo '* ' . lang('носить порнографический характер') . '<br />';
    echo '* ' . lang('содержать коммерческую рекламу в любом виде') . '<br /><br />';

    $doc->Button('btn btn-primary btn-sm', null, 'upload', 'Выгрузить');
    $doc->Link('btn btn-secondary btn-sm', '?', null, 'Отмена');

    echo "</form>";

    require_once H . 'sys/inc/tfoot.php';
    exit;
}
