<?
include_once('../../sys/inc/core.php');
include_once(SYS_INC . 'classes/AjaxData.class.php');
include_once(SYS_INC . 'classes/uploader.class.php');
$ad = AjaxData::getInstance();
if (!isset($_GET['id_gallery']))
$ad -> setErrorAndHook('Поступили не все данные');
$gallery = mysql_fetch_assoc(mysql_query("SELECT * FROM `gallery` WHERE `id` = '" . intval($_GET['id_gallery']) . "' AND `id_user` = '$user[id]'"));
if (empty($gallery))
$ad -> setErrorAndHook('Галерея не найдена');
$uploader = new Uploader();
if (!$uploader -> isUploaded('qqfile'))
$ad -> setErrorAndHook('Файл не получен');
$result = @$uploader -> upload('qqfile');
if (!$result['success'])
$ad -> setErrorAndHook($result['error']);
// на всякий случай
if (!is_file($result['path']))
$ad -> setErrorAndHook('Ошибка загрузки файла');
if (!strstr($result['type'], 'image/'))
$ad -> setErrorAndHook('Это не изображение');
$imgc = @imagecreatefromstring(file_get_contents($result['path']));
if (!$imgc) {
@unlink($result['path']);
@imageDestroy($imgc);
$ad -> setErrorAndHook('Неверный формат изображения');
}
$img_x = imageSX($imgc);
$img_y = imageSY($imgc);
if ($img_x > $set['max_upload_foto_x'] || $img_y > $set['max_upload_foto_y'])
$ad -> setErrorAndHook('Изображения превышает ограничения в '.$set['max_upload_foto_x'].'x'.$set['max_upload_foto_y']);
mysql_query("INSERT INTO `gallery_foto` (`id_gallery`, `name`, `ras`, `type`, `id_user`) values ('$gallery[id]', '" . my_esc($result['name']) . "', 'jpg', 'image/jpeg', '$user[id]')");
$id_foto = mysql_insert_id();
mysql_query("UPDATE `gallery` SET `time` = '$time' WHERE `id` = '$gallery[id]' LIMIT 1");
$previews_sizes = array(48, 128);
foreach ($previews_sizes as $preview_size) {
if ($img_x == $img_y) {
$dstW = $preview_size;
$dstH = $preview_size;
} elseif ($img_x > $img_y) {
$prop = $img_x / $img_y;
$dstW = $preview_size;
$dstH = ceil($dstW / $prop);
} else {
$prop = $img_y / $img_x;
$dstH = $preview_size;
$dstW = ceil($dstH / $prop);
}
$screen = imagecreatetruecolor($dstW, $dstH);
imagecopyresampled($screen, $imgc, 0, 0, 0, 0, $dstW, $dstH, $img_x, $img_y);
$preview_file_path = H . 'sys/gallery/' . $preview_size . '/' . $id_foto . '.jpg';
imagejpeg($screen, $preview_file_path, 90);
@chmod($preview_file_path, 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);
@crop(H."sys/gallery/640/$id_foto.jpg", H."sys/gallery/50/$id_foto.tmp.jpg");
@resize(H."sys/gallery/50/$id_foto.tmp.jpg", H."sys/gallery/50/$id_foto.jpg", 50, 50);
@chmod(H."sys/gallery/50/$id_foto.jpg",0777);
@unlink(H."sys/gallery/50/$id_foto.tmp.jpg");
@unlink($result['path']);
$result = array(
'name' => htmlspecialchars($result['name']),
'name_input' => input_value_text($result['name']),
'extension' => htmlspecialchars($result['extension']),
'id_foto' => $id_foto
);
$q = mysql_query("SELECT * FROM `frends` WHERE `user` = '$user[id]' AND `lenta_foto` = '1' AND `i` = '1'");
mysql_query("UPDATE `tape` SET `count` = '0' WHERE `type` = 'album' AND `read` = '1' AND `id_file` = '$gallery[id]'");
$q = mysql_query("SELECT * FROM `frends` WHERE `user` = '$user[id]' AND `i` = '1'");
while ($f = mysql_fetch_array($q)) {
$a = get_user($f['frend']);
$lentaSet = mysql_fetch_array(mysql_query("SELECT * FROM `tape_set` WHERE `id_user` = '$a[id]' LIMIT 1"));
if ($f['lenta_foto'] == 1 && $lentaSet['lenta_foto'] == 1) {
if (mysql_result(mysql_query("SELECT COUNT(*) FROM `tape` WHERE `id_user` = '$a[id]' AND `type` = 'album' AND `id_file` = '$gallery[id]' LIMIT 1"),0)==0)
mysql_query("INSERT INTO `tape` (`id_user`, `avtor`, `type`, `time`, `id_file`, `count`) values('$a[id]', '$gallery[id_user]', 'album', '$time', '$gallery[id]', '1')");
else {
$tape = mysql_fetch_array(mysql_query("SELECT * FROM `tape` WHERE `type` = 'album' AND `id_file` = '$gallery[id]'"));
mysql_query("UPDATE `tape` SET `count` = '".($tape['count']+1)."', `read` = '0', `time` = '$time' WHERE `id_user` = '$a[id]' AND `type` = 'album' AND `id_file` = '$gallery[id]' LIMIT 1");
}
}
}
$ad -> setStatus(AjaxData::STATUS_OK);
$ad -> setDataAndHook($result);
?>