Файл: modules/foto/inc/gallery_show.php
Строк: 296
<?php
/* DCMS Special
* Дата последнего редактирования 27.01.2016
* Модифицировал densnet
*/
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/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");
mysql_query("DELETE FROM `gallery_foto` WHERE `id` = '$post[id]' LIMIT 1");
mysql_query("DELETE FROM `gallery_frend` WHERE `id_foto` = '$post[id]'");
}
if ($user['id'] != $ank['id']) {
admin_log(lang('Фотогалерея'), lang('Фотоальбомы'), lang('Удаление альбома') . " $gallery[name] (" . lang('фотографий') . ": " . mysql_num_rows($q) . ")");
}
mysql_query("DELETE FROM `gallery` WHERE `id` = '$gallery[id]' LIMIT 1");
header("Location: " . DIR_FOTO . "$ank[id]/");
exit;
}
err();
#Навигация
echo "<div class='card-header'>";
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 "</div>";
echo "<form action='?act=delete&ok' class='list-group-item' style='margin-top: -1px;' 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 = mysql_real_escape_string($name);
$msg = $_POST['opis'];
//if (utf8_strlen($msg)<10)$err='Короткое описание';
if (utf8_strlen($msg) > 256) {
$err[] = lang('Длина описания превышает предел в 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[] = 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['password']) < 1) {
$err[] = lang('Введите пароль');
}
if (utf8_strlen($_POST['password']) > 16) {
$err[] = lang('Пароль слишком длинный');
}
$password = $_POST['password'];
} else {
$password = NULL;
}
if (!isset($err)) {
if ($user['id'] != $ank['id']) {
admin_log(lang('Фотогалерея'), lang('Фотоальбомы'), "" . lang('Редактирование фотоальбома пользователя') . " '[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]'");
$_SESSION['message'] = lang('Изменения сохранены');
header("Location: " . DIR_FOTO . "$ank[id]/$gallery[id]/");
exit();
}
}
$new_gallery_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&ok' class='list-group-item' style='margin-top: -1px;' method="post">";
$doc->Input('name', 'Название альбома', 32, "$gallery[name]");
$doc->Textarea('opis', 'Описание альбома', 256, "$gallery[opis]");
echo lang('Доступ') . ":<br />";
echo "<div class='c-inputs-stacked'>
<label class='c-input c-radio'><input value='all' name='access' type='radio' " . ($new_gallery_access == 'all' ? " checked='checked'" : null) . "><span class='c-indicator'></span><i class='fa fa-unlock fa-fw'></i> " . lang('Всем') . "</label>
<label class='c-input c-radio'><input value='only_me' name='access' type='radio' " . ($new_gallery_access == 'only_me' ? " checked='checked'" : null) . "><span class='c-indicator'></span><i class='fa fa-lock fa-fw'></i> " . lang('Только мне') . "</label>
<label class='c-input c-radio'><input value='auth' name='access' type='radio' " . ($new_gallery_access == 'auth' ? " checked='checked'" : null) . "><span class='c-indicator'></span><i class='fa fa-user fa-fw'></i> " . lang('Только авторизованным') . "</label>
<label class='c-input c-radio'><input value='friends' name='access' type='radio' " . ($new_gallery_access == 'friends' ? " checked='checked'" : null) . "><span class='c-indicator'></span><i class='fa fa-users fa-fw'></i> " . lang('Только друзьям') . "</label>
<label class='c-input c-radio'><input value='pass' name='access' type='radio' " . ($new_gallery_access == 'pass' ? " checked='checked'" : null) . "><span class='c-indicator'></span><i class='fa fa-key fa-fw'></i> " . lang('Только по паролю') . "</label>
</div>";
$doc->Input('password', 'Пароль альбома', 16, "$gallery[password]");
echo "<br />";
$doc->Button('btn btn-success-outline btn-sm', null, 'save', 'Сохранить');
$doc->Link('btn btn-secondary-outline 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 = mysql_real_escape_string($name);
$msg = $_POST['opis'];
#if (utf8_strlen($msg)<10)$err='Короткое описание';
if (utf8_strlen($msg) > 10024) {
$err = lang('Длина описания превышает предел в 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 = 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)) {
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");
$q = mysql_query("SELECT * FROM `friends` WHERE `user` = '$user[id]' AND `i` = '1'");
$fot_id = $id_foto;
$msg_lenta = "$SexDob новое [url=/modules/foto/$ank[id]/$gallery[id]/$fot_id/]фото[/url]";
while ($f = mysql_fetch_array($q)) {
$a = mysql_fetch_array(mysql_query("SELECT * FROM `user` WHERE `id` = '$f[frend]' LIMIT 1"));
mysql_query("INSERT INTO `notifications` (`id_user`, `id_kont`, `msg`, `time`) values('$user[id]', '$a[id]', '" . mysql_real_escape_string($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]/$id_foto/");
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' style='margin-top: -1px;' class='list-group-item-null' action='?act=upload&ok' method='post'>";
$doc->Input('name', 'Название', 100);
$doc->Checkbox('adult', 'Фото для взрослых', 1);
$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 />';
$doc->Button('btn btn-primary-outline btn-sm', null, 'upload', 'Выгрузить');
$doc->Link('btn btn-secondary-outline btn-sm', '?', null, 'Отмена');
echo "</form>";
require_once H . 'sys/inc/tfoot.php';
exit;
}