View file gallery/index.php

File size: 19.88Kb
<?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).'">&lt;-Назад</a> ';}else{echo'&lt;-Назад';}
echo' | '; 
if ($total > $start + $posts) {echo ' <a href="'.$page.'start='.($start + $posts).'">Далее-&gt;</a>';}else{echo'Далее-&gt;';}

$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&amp;id='.$dt[8].'&amp;dir='.$dir.'&amp;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&amp;id='.$id.'&amp;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&amp;id='.$dt[8].'&amp;dir='.$dir.'&amp;user='.$user.'&amp;act=del&amp;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&amp;gid=$gid&amp;mod=$mod&amp;page=$page&amp;".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&amp;dir='.$dir.'&amp;user='.$user.'&amp;id='.$id.'&amp;');
echo '<br>';
} else echo '<b>Комментариев еще нет!</b><hr>';
} else echo '<b>Данной фотографии нет!</b><br>';

} else echo '<b>Фотографий нет!</b><br>';
echo '<a href="index.php?user='.$user.'&amp;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&amp;dir='.$dir.'&amp;id='.$id.'&amp;fid='.$fotoid.'&amp;user='.$user.'&amp;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].'&amp;gdir=local&amp;gpoddir=gallery/'.$user.'&amp;gname='.$dt[8].'.'.$dt[9].'&amp;maxsize=240" alt="">';
}else{
echo '<img src="gallery.php?image='.$dt[8].'.'.$dt[9].'&amp;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&amp;id='.$dt[8].'&amp;dir='.$dir.'&amp;user='.$user.'">Комментарии</a> ('.(int)$totalkomm.')';
echo '</div>';

} else echo '<b>Данной фотографии нет!</b><br>';

} else echo '<b>Фотографий нет!</b><br>';
echo '<a href="index.php?action=view&amp;user='.$user.'&amp;dir='.$dir.'&amp;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&amp;id='.$dt[8].'&amp;dir='.$dir.'&amp;user='.$user.'&amp;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].'&amp;gdir=local&amp;gpoddir=gallery/'.$user.'&amp;gname='.$dt[8].'.'.$dt[9].'&amp;maxsize='.$config_previewsize.'" alt="">';
}else{
echo '<img src="gallery.php?image='.$dt[8].'.'.$dt[9].'&amp;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&amp;id='.$dt[8].'&amp;dir='.$dir.'&amp;user='.$user.'">Комментарии</a> ('.(int)$totalkomm.')';
echo '</div>';
}

page($start, $config_fotolist, $total, 'index.php?action=view&amp;dir='.$dir.'&amp;user='.$user.'&amp;');
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&amp;dir='.$catinfo[1].'&amp;user='.$user.'">'.$catinfo[0].'</a> 
('.$catinfo[2].')';

if($log==$user) echo ' [<a href="index.php?dir='.$catinfo[1].'&amp;id='.$i.'&amp;user='.$user.'&amp;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";
?>