<?php
require_once"../template/start.php";
require_once"../template/regglobals.php";
require_once"../template/config.php";
require_once"../template/functions.php";
require_once"../template/antidos.php";
require_once"../template/cookies.php";
require_once"../template/gzip.php";
require_once"../template/header.php";
require_once"../template/referer.php";
include_once"../themes/$config_themes/index.php";
include_once"../template/isset.php";
mb_internal_encoding('UTF-8');
Error_Reporting(E_ALL & ~ E_NOTICE);
$auth = $_SESSION['log']!="" && md5($_SESSION['par'])!="" && md5($_SESSION['par'])==$provpar && $_SESSION['log']==$provlog ? true : false;
$dirsize = 30;
function page($start, $posts, $total, $page){
echo'<div class="menu"><div class="b">';
if ($start != 0) {echo '<a href="'.$page.'start='.($start - $posts).'"><-Назад</a> ';}else{echo'<-Назад';}
echo' | ';
if ($total > $start + $posts) {echo ' <a href="'.$page.'start='.($start + $posts).'">Далее-></a>';}else{echo'Далее->';}
$ba=ceil($total/$posts);
$ba2=$ba*$posts-$posts;
echo '</div>Страницы:';
$asd=$start-($posts*4);
$asd2=$start+($posts*5);
if($asd<$total && $asd>0){echo ' <a href="'.$page.'start=0">1</a> ... ';}
for($i=$asd; $i<$asd2;){
if($i<$total && $i>=0){
$ii=floor(1+$i/$posts);
if ($start==$i) {
echo ' <b>('.$ii.')</b> ';
} else {
echo ' <a href="'.$page.'start='.$i.'">'.$ii.'</a>';
}}
$i=$i+$posts;
}
if($asd2<$total){echo ' ... <a href="'.$page.'start='.$ba2.'">'.$ba.'</a>';}
echo'</div>';
}
$user = $_GET['user'] ? check($_GET['user']) : $log;
echo'<div class="b">Фотогалерея</div>';
if($auth){
if(isset($_GET['action'])) $action = $_GET['action']; else $action = false;
switch($action){
case('addkomm'):
if(isset($_GET['id'])) $id = abs((int)$_GET['id']);
else $id = 0;
if(isset($_GET['dir'])) $dir = abs((int)$_GET['dir']);
else $dir = 1;
echo'<div class="b"> Добавление комментария</div>';
if ($_SESSION['log']!="" && md5($_SESSION['par'])!="" && md5($_SESSION['par'])==$provpar && $_SESSION['log']==$provlog ){
if(strlen(utf_to_win(trim($msg)))>5 && strlen(utf_to_win($msg))<750){
if(file_exists("../local/datagallery/$gid")){
//--------------------- Новый антифлуд -----------------------------//
if($config_floodstime > 0){
if(flooder($ip, $php_self) == TRUE ){header ("location: index.php?action=komm&id=$id&user=$user&dir=$dir&isset=antiflood&"); exit;}
$flood_file = fopen(BASEDIR."local/flood.dat", "a+");
flock ($flood_file,LOCK_EX);
fputs ($flood_file,"$sitetime|$ip|$php_self|\r\n");
fflush($flood_file);
flock ($flood_file,LOCK_UN);
fclose($flood_file);
}
//--------------------- Карантин -----------------------------//
if($config_karantin > 0){
if($udata[6]+$config_karantin>$sitetime){header ("Location: index.php?action=komm&gid=$gid&isset=karantin&".SID); exit;}
}
$msg=wordwrap($msg,100,' ',1);
$msg=substr($msg,0,750);
$msg=check($msg);
if($trans=="y"){$msg=transliter($msg);}
$msg = antimat($msg);
$msg = smiles($msg);
$text=$msg.'||'.$sitetime.'|'.$log.'|';
$text=no_br($text);
$fp=fopen("../local/commgallery/$user/$id.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
chmod("../local/commgallery/$user/$id.dat", 0777);
//Ваш комментарий успешно добавлен!
header("location: index.php?action=komm&id=$id&user=$user&dir=$dir&isset=addkomm&".SID);
}else{echo'<b>Ошибка, такой фотографии не существует!</b><br>'; }
}else{echo'<b>Вы не написали комментарий или он слишком короткий</b><br>'; }
}else{
echo 'Вы не авторизованы, чтобы добавить сообщение необходимо<br>';
echo '<b><a href="../pages/vhod.php?'.SID.'">Авторизоваться</a></b> или в начале <b><a href="../pages/registration.php?'.SID.'">Зарегистрироваться</a></b><br>';
}
echo'<a href="index.php?action=komm&id='.$dt[8].'&dir='.$dir.'&user='.$user.'">Вернуться</a><br>';
break;
case('komm'):
if(isset($_GET['id'])) $id = abs((int)$_GET['id']);
else $id = 0;
if(isset($_GET['dir'])) $dir = abs((int)$_GET['dir']);
else $dir = 1;
if($act=="del"){
if($provpar==md5($_SESSION['par']) && $provlog==$_SESSION['log']){
if ($dostup==101 || $dostup==102 || $dostup==103 || $dostup==105){
$file=file('../local/commgallery/'.$user.'/'.$id.'.dat');
$fp=fopen('../local/commgallery/'.$user.'/'.$id.'.dat',"w");
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$num) {unset($file[$i]);} }
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);}}}
$fotos = '../local/gallery/'.$user.'.dat';
if(file_exists($fotos) && count($fotos)>0){
$foto = array_reverse(file($fotos));
$total = count($foto);
$truefoto = false;
for ($i = 0; $i < $total; $i++){
$dt = explode("|", $foto[$i]);
if($dt[8] == $id){$fotoid = $i; $truefoto = true;}
}
if($truefoto){
if ($auth){
echo'<form action="index.php?action=addkomm&id='.$id.'&user='.$user.'" name="form" method="post">';
echo'<b>Сообщение:</b><br>';
echo'<textarea cols="25" rows="3" name="msg"></textarea><br>';
echo "<script language=\"JavaScript\" type=\"text/javascript\"> function tag(text1, text2) { if ((document.selection)) { document.form.msg.focus(); document.form.document.selection.createRange().text = text1+document.form.document.selection.createRange().text+text2; } else if(document.forms['form'].elements['msg'].selectionStart != undefined) { var element = document.forms['form'].elements['msg']; var str = element.value; var start = element.selectionStart; var length = element.selectionEnd - element.selectionStart; element.value = str.substr(0, start) + text1 + str.substr(start, length) + text2 + str.substr(start + length); } else document.form.msg.value += text1+text2; } </script>";include_once BASEDIR."template/quickcode.php";include_once BASEDIR."template/quicksmiles.php";
if($config_translit=="1"){
echo'Транслит: <input name="trans" type="checkbox" value="y" /><br>';}
echo'<input type="submit" value="Написать" /></form><hr>';
}else{
echo 'Вы не авторизованы, чтобы добавить сообщение необходимо<br>';
echo '<b><a href="../pages/vhod.php?'.SID.'">Авторизоваться</a></b> или в начале <b><a href="../pages/registration.php?'.SID.'">Зарегистрироваться</a></b><br>';
}
$comm = "../local/commgallery/$user/$id.dat";
if(file_exists($comm) && count($comm)>0){
$file = file("../local/commgallery/$user/$id.dat");
$file = array_reverse($file);
$total = count($file);
$start = abs((int)$_GET['start']);
if($start < 0 || $start > $total){$start = 0;}
if ($total < $start + $config_postgallery){$end = $total;}
else {$end = $start + $config_postgallery;}
for ($i = $start; $i < $end; $i++){
$data = explode("|",$file[$i]);
$num=$total-$i-1;
$ava = file("../local/profil/$data[3].prof");
$avv = explode(":||:",$ava[0]);
$data[0]=bb_code($data[0]);
echo'<div class=b> ';
if(!empty($udata[45])){
if($avv[43]!="" && $avv[43]!="noavatar.gif"){
echo'<img src="../'.$avv[43].'" alt=""> ';}else{
echo'<img src="../images/avators/noavatar.gif" alt=""> ';}
echo '<b><a href="../pages/anketa.php?uz='.$data[3].'"> '.nickname($data[3]).' </a></b> '.user_online($data[3]);
}else{
echo'<img src="../images/img/edit.gif" alt=""> <b><a href="../pages/anketa.php?uz='.$data[3].'"> '.nickname($data[3]).' </a></b> '.user_online($data[3]);
}
echo '<small> ('.date_fixed($data[2]).')</small>';
if ($auth && ($dostup==101 || $dostup==102 || $dostup==103 || $dostup==105)){
echo ' <a href="index.php?action=komm&id='.$dt[8].'&dir='.$dir.'&user='.$user.'&act=del&num='.$num.'"><font color="#FF0000">[Del]</font></a>';
}
echo '</div><div>'.$data[0].'</div>';
}
if($log!=$page){$self=explode("/",$_SERVER["PHP_SELF"]);$chel=nickname($log);$mess="$chel добавил <a href=\"../list/komm.php?action=komm&gid=$gid&mod=$mod&page=$page&".SID."\">комментарий</a> в вашей личной страничке! Посмотрите на досуге)))";$mess=base64_encode($mess);$tex="Смотрящий|$mess|$sitetime";$fp=fopen(BASEDIR."local/privat/$page.priv","a+"); flock($fp,LOCK_EX); fputs($fp,"$tex \r\n");fflush ($fp);flock ($fp,LOCK_UN);fclose($fp); @chmod("$fp", 0777);@chmod(BASEDIR."local/privat/$page.priv", 0777);$ufile = file(BASEDIR."local/profil/$page.prof"); $udata = explode(":||:",$ufile[0]);$udata[10]=$udata[10]+1;for ($u=0; $u<$config_userprofkey; $u++){$utext.=$udata[$u].':||:';}if($udata[0]!="" && $udata[1]!="" && $udata[4]!="" && $utext!=""){$fp=fopen(BASEDIR."local/profil/$page.prof","a+");flock($fp,LOCK_EX);ftruncate($fp,0);fputs($fp,$utext);fflush($fp);flock($fp,LOCK_UN);fclose($fp); unset($utext);}}
page($start, $config_postgallery, $total, 'index.php?action=komm&dir='.$dir.'&user='.$user.'&id='.$id.'&');
echo '<br>';
} else echo '<b>Комментариев еще нет!</b><hr>';
} else echo '<b>Данной фотографии нет!</b><br>';
} else echo '<b>Фотографий нет!</b><br>';
echo '<a href="index.php?user='.$user.'&dir='.$dir.'">Вернуться</a><br>';
break;
case('show'):
if(isset($_GET['id'])) $id = abs((int)$_GET['id']);
else $id = 0;
if(isset($_GET['dir'])) $dir = abs((int)$_GET['dir']);
else $dir = 1;
$fotos = '../local/gallery/'.$user.'.dat';
if(file_exists($fotos) && count($fotos)>0){
$foto = file($fotos);
$total = count($foto);
$start = abs((int)$_GET['start']);
$truefoto = false;
for ($i = 0; $i < $total; $i++){
$dt = explode("|", $foto[$i]);
if($dt[8] == $id){$fotoid = $i; $truefoto = true;}
}
if($truefoto){
if(isset($_GET['del']) && ($log==$user || $dostup==101)){
$delstring = explode("|", $foto[$fotoid]);
unset($foto[$fotoid]);
$file = fopen('../local/gallery/'.$user.'.dat', 'w');
fputs($file, implode('', $foto));
fclose($file);
chmod('../local/gallery/'.$user.'.dat', 0666);
$categories = file('../local/gallery/'.$user.'.cat');
for($i=0; $i<count($categories); $i++){
$catinfo = explode('|', $categories[$i]);
if($delstring[4]==$catinfo[1]){
$catinfo[2]--;
$categories[$i] = implode('|', $catinfo);
}
}
$file = fopen('../local/gallery/'.$user.'.cat', 'w');
fputs($file, implode('', $categories));
fclose($file);
chmod('../local/gallery/'.$user.'.cat', 0666);
header("Location: index.php?action=view&user=$user&dir=$dir");
}
$dt = explode("|", $foto[$fotoid]);
$totalkomm=0;
if (file_exists("../local/commgallery/$dt[8].dat")){
$file = file("../local/commgallery/$dt[8].dat");
$totalkomm = count($file);
}
echo '<div class=b><div class=menu>';
echo '<b>'.$dt[1].'</b> ('.formatsize($dt[5]).')';
if($log==$user || $dostup==101) echo ' [<a href="index.php?action=show&dir='.$dir.'&id='.$id.'&fid='.$fotoid.'&user='.$user.'&del"><font color="red">del</font></a>]<br>';
echo '</div><div>';
if($dt[6]>240 || $dt[7]>240){
echo '<img src="resize.php?act='.$dt[9].'&gdir=local&gpoddir=gallery/'.$user.'&gname='.$dt[8].'.'.$dt[9].'&maxsize=240" alt="">';
}else{
echo '<img src="gallery.php?image='.$dt[8].'.'.$dt[9].'&user='.$user.'" alt="">';
}
echo '<br>'.$dt[0].'<br>';
echo 'Размер: <b>'.$dt[6].' х '.$dt[7].'</b><br>';
echo 'Добавил: <a href="../pages/anketa.php?uz='.$dt[2].'">'.nickname($dt[2]).'</a> ('.date_fixed($dt[3]).')<br>';
echo '<a href="index.php?action=komm&id='.$dt[8].'&dir='.$dir.'&user='.$user.'">Комментарии</a> ('.(int)$totalkomm.')';
echo '</div>';
} else echo '<b>Данной фотографии нет!</b><br>';
} else echo '<b>Фотографий нет!</b><br>';
echo '<a href="index.php?action=view&user='.$user.'&dir='.$dir.'&start='.$start.'">Назад</a><br>';
break;
case('view'):
if(isset($_GET['dir'])) $dir = abs((int)$_GET['dir']);
else $dir = 1;
$fotos = '../local/gallery/'.$user.'.dat';
if(file_exists($fotos) && count($fotos)>0){
$fotos = array_reverse(file($fotos));
$foto = array();
for ($i = 0; $i < count($fotos); $i++){
$data = explode('|', $fotos[$i]);
if($data[4] == $dir) $foto[]=$fotos[$i];
}
$total = count($foto);
if($total<1) echo '<b>Фотографий еще нет!</b><br>';
$start = abs((int)$_GET['start']);
if($start > $total) $start = 0;
if ($total < $start + $config_fotolist) $end = $total;
else $end = $start + $config_fotolist;
for ($i = $start; $i < $end; $i++){
$dt = explode("|", $foto[$i]);
$totalkomm = 0;
if (file_exists("../local/commgallery/$user/$dt[8].dat")){
$file = file("../local/commgallery/$user/$dt[8].dat");
$totalkomm = count($file);
}
echo '<div class=b> ';
echo '<b><a href="index.php?action=show&id='.$dt[8].'&dir='.$dir.'&user='.$user.'&start='.$start.'">'.$dt[1].'</a></b> ('.formatsize($dt[5]).')</div><div class=menu>';
if($dt[6]>$config_previewsize || $dt[7]>$config_previewsize){
echo '<img src="resize.php?act='.$dt[9].'&gdir=local&gpoddir=gallery/'.$user.'&gname='.$dt[8].'.'.$dt[9].'&maxsize='.$config_previewsize.'" alt="">';
}else{
echo '<img src="gallery.php?image='.$dt[8].'.'.$dt[9].'&user='.$user.'" alt="">';
}
echo'<br>'.$dt[0].'<br>';
echo 'Разместил: <a href="../pages/anketa.php?uz='.$dt[2].'">'.nickname($dt[2]).'</a> ('.date_fixed($dt[3]).')<br>';
echo '<a href="index.php?action=komm&id='.$dt[8].'&dir='.$dir.'&user='.$user.'">Комментарии</a> ('.(int)$totalkomm.')';
echo '</div>';
}
page($start, $config_fotolist, $total, 'index.php?action=view&dir='.$dir.'&user='.$user.'&');
echo '<br>';
} else echo '<b>Фотографий нет!</b><br>';
echo '<a href="index.php?user='.$user.'">Назад</a><br>';
break;
case('add'):
if(file_exists('../local/gallery/'.$log.'.cat')){
if(isset($_POST['cat'])){
$tmp = $_FILES['file']['tmp_name'];
$tmp_name = $_FILES['file']['name'];
$tmp_size = filesize($tmp);
$name = no_br(check($_POST['name']));
$cat = abs((int)$_POST['cat']);
$msg = check($_POST['msg']);
$error = false;
$format = mb_strtolower(pathinfo($tmp_name, PATHINFO_EXTENSION));
$formats = array('jpg', 'gif', 'png');
if(!is_uploaded_file($tmp)) $error.='Укажите файл для загрузки<br>';
if(!in_array($format, $formats)) $error.='Данный файл не является фотографией!<br>';
if(mb_strlen($name)>$dirsize) $error.='Недопустимая длина названия фотографии<br>';
if(empty($name)) $error.='Отсутствует название фотографии!<br>';
if(empty($msg)) $error.='Отсутствует описание фотографии!<br>';
$cats = file('../local/gallery/'.$log.'.cat');
$dirs = array();
$counts = 0;
for($i=0; $i<count($cats); $i++){
$catinfo = explode('|', $cats[$i]);
$dirs[] = $catinfo[1];
if($cat==$catinfo[1]) $idcat = $i;
$counts+=$catinfo[3];
}
if(!in_array($cat, $dirs)) $error.='Выберите категорию!<br>';
list($width, $height) = GetImageSize($tmp);
if($width>$config_filefoto && $height>$config_filefoto && $height<10 && $width<10)
$error.='Слишком большой размер фотографии!<br>';
if($tmp_size>$config_filesize && $tmp_size<=0)
$error.='Слишком большой вес файла!<br>';
if($error)
echo '<b>Обнаружены ошибки при добавлении фотографии:</b><br>'.$error;
else {
$FileName = "../local/gallery/$log/$counts.$format";
move_uploaded_file($tmp, $FileName);
chmod($FileName, 0777);
$text = $msg.'|'.$name.'|'.$log.'|'.$sitetime.'|'.$cat.'|'.$tmp_size.'|'.$width.'|'.$height.'|'.$counts.'|'.$format.'|';
$text = no_br($text);
$datacat = explode('|', $cats[$idcat]);
$datacat[3]++;
$datacat[2]++;
$textcat = implode('|', $datacat);
$cats[$idcat] = $textcat;
$file = fopen('../local/gallery/'.$log.'.cat', 'w');
fputs($file, implode('', $cats));
fclose($file);
chmod('../local/gallery/'.$log.'.cat', 0666);
$file = fopen('../local/gallery/'.$log.'.dat', 'a+');
fputs($file, "$text\r\n");
fclose($file);
chmod('../local/gallery/'.$log.'.dat', 0666);
header ("Location: index.php?isset=addfoto"); exit;
}
} else {
echo '<form action="index.php?action=add" method="post" name="form" enctype="multipart/form-data">';
echo 'Название: <br><input type="text" value="" name="name" /><br>';
echo 'Прикрепить фото:<br><input type="file" name="file" /><br>';
echo 'Категория:<br><select name="cat">';
$cat = file('../local/gallery/'.$log.'.cat');
$total = count($cat);
for($i=0; $i<$total; $i++){
$catinfo = explode('|', $cat[$i]);
echo '<option value="'.$catinfo[1].'">'.$catinfo[0].'</option>';
}
echo '</select><br>Подпись к фото: <br><textarea cols="25" rows="3" name="msg"></textarea><br>';
echo '<input type="submit" value="Добавить" /></form><hr>';
echo 'Разрешается добавлять фотки с расширением jpg, gif и png<br>';
echo 'Весом не более '.formatsize($config_filesize).' и размером не более '.(int)$config_filefoto.'*'.(int)$config_filefoto.' px<br>';
}
} else echo '<b>Категории не созданы!</b><br>';
break;
case('create'):
if(isset($_POST['dir']) && $_POST['dir']!=""){
$error = false;
$dir = no_br(check($_POST['dir']));
if(mb_strlen($dir)>$dirsize) $error.='Недопустимая длина название папки!<br>';
if(empty($dir)) $error.='Отсутствует название папки!<br>';
if($error){
echo 'Обнаружены ошибки в создании папки:<br>'.$error;
} else {
if(file_exists('../local/gallery/'.$log.'.cat'))
$total = count(file('../local/gallery/'.$log.'.cat'))+1;
else $total = 1;
$file = fopen('../local/gallery/'.$log.'.cat', 'a+');
fputs($file, "$dir|$total|0|0|\r\n");
fclose($file);
chmod('../local/gallery/'.$log.'.cat', 0777);
if(!is_dir('../local/gallery/'.$log)){
mkdir('../local/gallery/'.$log);
chmod('../local/gallery/'.$log, 0777);
mkdir('../local/commgallery/'.$log);
chmod('../local/commgallery/'.$log, 0777);
}
echo 'Категория <b>'.$dir.'</b> создана!<br>';
}
} else {
echo '<form action="index.php?action=create" method="post">
<b>Название категории</b>:<br>
<input type="text" name="dir"><br>
<input type="submit" value="Добавить"><br>';
}
echo '<a href="index.php">Назад</a><br>';
break;
default:
if(file_exists('../local/gallery/'.$user.'.cat')){
if(isset($_GET['del'])){
$file = file('../local/gallery/'.$log.'.cat');
unset($file[$_GET['id']]);
$fp = fopen('../local/gallery/'.$log.'.cat',"w");
flock ($fp,LOCK_EX);
$file[$i];
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
$foto = file('../local/gallery/'.$log.'.dat');
$fotos = $foto;
for ($i = 0; $i < count($foto); $i++){
$dt = explode("|", $foto[$i]);
if($dt[4] == $_GET['dir']){unset($fotos[$i]); unlink('../local/gallery/'.$log.'/'.$dt[8].'.'.$dt[9]);}
}
$fp = fopen('../local/gallery/'.$log.'.dat',"w");
flock ($fp,LOCK_EX);
$file[$i];
fputs($fp, implode("",$fotos));
flock ($fp,LOCK_UN);
fclose($fp);
}
echo'<div class="menu">';
$cat = file('../local/gallery/'.$user.'.cat');
$total = count($cat);
for($i=0; $i<$total; $i++){
$catinfo = explode('|', $cat[$i]);
echo '<img src="../images/img/dir.gif" alt="">
<a href="index.php?action=view&dir='.$catinfo[1].'&user='.$user.'">'.$catinfo[0].'</a>
('.$catinfo[2].')';
if($log==$user) echo ' [<a href="index.php?dir='.$catinfo[1].'&id='.$i.'&user='.$user.'&del"><font color="red">del</font></a>]<br>';
}
echo'</div>';
if($log==$user) echo '<a href="index.php?action=add">Добавить фотографию</a><br>';
} elseif($log==$user) echo '<b>Категории не созданы!</b><br>';
else echo '<b>У данного пользователя не существует фотоальбома!</b><br>';
if($log==$user) echo '<a href="index.php?action=create">Создать категорию</a><br>';
break;
}
}
echo '<a href="../index.php">На главную</a>';
include_once "../themes/$config_themes/foot.php";
?>