Файл: modules/foto/inc/gallery_show.php
Строк: 241
<?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 "<ol class='breadcrumb'>";
echo "<li><a href='/'><span class='fa fa-home fa-fw'></span></a></li>";
echo "<li><a href='" . DIR_FOTO . "'>Фотоальбомы</a></li>";
echo "<li><a href='" . DIR_FOTO . "$ank[id]/'>Альбомы $ank[nick]</a></li>";
echo "<li><a href='" . DIR_FOTO . "$ank[id]/$gallery[id]/'>$gallery[name]</a></li>";
echo "<li class='active'>Редактирование</li>";
echo "</ol>";
echo "<form action='?act=edit&ok' class='list-group-item' method="post">";
echo "Название альбома<br />";
echo "<input class='form-control' type='text' name='name' value='$gallery[name]' />";
echo "Описание<br />";
echo "<textarea class='form-control' rows='3' name='opis'>$gallery[opis]</textarea>n";
echo "Давать доступ<br />n";
echo "<label class='c-input c-radio'><input type='radio' name='access' value='all'" . ($new_gallery_access == 'all' ? " checked='checked'" : null) . "/><span class='c-indicator'></span> <span class='fa fa-globe fa-fw'></span> Всем</label><br />";
echo "<label class='c-input c-radio'><input type='radio' name='access' value='only_me'" . ($new_gallery_access == 'only_me' ? " checked='checked'" : null) . "/><span class='c-indicator'></span> <span class='fa fa-lock fa-fw'></span> Только мне</label><br />";
echo "<label class='c-input c-radio'><input type='radio' name='access' value='auth'" . ($new_gallery_access == 'auth' ? " checked='checked'" : null) . "/><span class='c-indicator'></span> <span class='fa fa-user fa-fw'></span> Только авторизованным</label><br />";
echo "<label class='c-input c-radio'><input type='radio' name='access' value='friends'" . ($new_gallery_access == 'friends' ? " checked='checked'" : null) . "/><span class='c-indicator'></span> <span class='fa fa-users fa-fw'></span> Только друзьям</label><br />";
echo "<label class='c-input c-radio'><input type='radio' name='access' value='pass'" . ($new_gallery_access == 'pass' ? " checked='checked'" : null) . "/><span class='c-indicator'></span> <span class='fa fa-key fa-fw'></span> Только по паролю</label><br />";
echo "<input class='form-control' name='passwd' style='width: 50%;' maxlength='16' type='text' value='$gallery[password]' /><br />";
echo "<button class='btn btn-success'><span class='fa fa-save fa-fw'></span> Сохранить</button> ";
echo "<a class='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 "<ol class='breadcrumb'>";
echo "<li><a href='/'><span class='fa fa-home fa-fw'></span></a></li>";
echo "<li><a href='" . DIR_FOTO . "'>Фотоальбомы</a></li>";
echo "<li><a href='" . DIR_FOTO . "$ank[id]/'>Альбомы $ank[nick]</a></li>";
echo "<li><a href='" . DIR_FOTO . "$ank[id]/$gallery[id]/'>$gallery[name]</a></li>";
echo "<li class='active'>Удаление</li>";
echo "</ol>";
echo "<form action='?act=delete&ok' class='list-group-item' method="post">";
echo "Подтвердите удаление фотоальбома<br />n";
echo "<button class='btn btn-success'><i class='fa fa-trash-o fa-fw'></i> Удалить</button> ";
echo "<a class='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) > 32) {
$err = 'Название не должно быть длиннее 32-х символов';
}
$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 "<ol class='breadcrumb'>";
echo "<li><a href='/'><span class='fa fa-home fa-fw'></span></a></li>";
echo "<li><a href='" . DIR_FOTO . "'>Фотоальбомы</a></li>";
echo "<li><a href='" . DIR_FOTO . "$ank[id]/'>Альбомы $ank[nick]</a></li>";
echo "<li><a href='" . DIR_FOTO . "$ank[id]/$gallery[id]/'>$gallery[name]</a></li>";
echo "<li class='active'>Новое фото</li>";
echo "</ol>";
echo "<form name='add' enctype='multipart/form-data' class='list-group-item' action='?act=upload&ok' method='post'>";
echo 'Название <font color="red">*</font><br />';
echo "<input class='form-control' name='name' type='text' />";
echo "<label class='c-input c-checkbox'><input class='form-control' type='checkbox' name='adult' value='1' /><span class='c-indicator'></span> Фото для взрослых <font color='red'><small>(+18)</small></font></label><br />n";
echo 'Файл <font color="red">*</font><br />';
echo "<label class='file'><input type='file' name='file' id='file' accept='image/*,image/jpeg'><span class='file-custom'></span></label>";
echo "<br />";
echo 'Описание <br />';
echo "<textarea class='form-control' name='opis' rows='3'></textarea><br />";
echo '<b>Размещаемые на Сайте Фото не должны:</b><br />';
echo '* нарушать действующее законодательство, честь и достоинство, права и охраняемые законом интересы третьих лиц, способствовать разжиганию религиозной, расовой или межнациональной розни, содержать сцены насилия, либо бесчеловечного обращения с животными, и т.д.;<br />';
echo '* носить непристойный или оскорбительный характер;<br />';
echo '* содержать рекламу наркотических средств;<br />';
echo '* нарушать права несовершеннолетних лиц;<br />';
echo '* нарушать авторские и смежные права третьих лиц;<br />';
echo '* носить порнографический характер;<br />';
echo '* содержать коммерческую рекламу в любом виде.<br />';
echo "<button class='btn btn-success'><i class='fa fa-upload fa-fw'></i> Выгрузить</button> ";
echo "<a class='btn btn-secondary' href='?'>Отмена</a>";
echo "</form>";
require_once H . 'sys/inc/tfoot.php';
exit;
}