<?php
// mod by Golem http://veplog.ru
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";
if (isset($_GET['gid'])) {$gid = check($_GET['gid']);} else {$gid='';}
##########################################################################
## Главная страница ##
##########################################################################
if(!isset($action)) {
echo'<div class=tp> <b>Галерея сайта</b></div>';
echo'<div class=tpanel>';
echo'[<a href="index.php?action=addfoto&'.SID.'">Добавить фото</a>]';
if($provpar==md5($_SESSION['par']) && $provlog==$_SESSION['log']) {
if ($dostup==101 || $dostup==102 || $dostup==103 || $dostup==105){
echo ' [<a href="../'.$config_mpanel.'/gallery.php?start='.$start.'&'.SID.'">Управление</a>]';}}
echo'</div>';
$lines = file(BASEDIR."local/datagallery/fotobase.dat");
$lines=array_reverse($lines);
$total = count($lines);
if (file_exists(BASEDIR."local/datagallery/fotobase.dat") && $total>0) {
$start = (int)$_GET['start'];
if($start < 0 || $start > $total){$start = 0;}
if ($total < $start + $config_fotolist){ $end = $total; }
else {$end = $start + $config_fotolist; }
for ($i = $start; $i < $end; $i++){
$dt = explode("|", $lines[$i]);
$totalkomm=0;
if (file_exists("../local/datagallery/$dt[6].dat")){
$file = file("../local/datagallery/$dt[6].dat");
$totalkomm = count($file);}
echo'<div class=forum>';
echo '<div class=r0><div class=b>» ';
echo '<b><a href="index.php?action=showimg&gid='.$dt[6].'&start='.$start.'&'.SID.'">'.$dt[1].'</a></b> ('.$dt[7].' Kb)</div><div>';
$ext = strtolower(substr($dt[6], strrpos($dt[6], '.') + 1));
if($dt[8]>$config_previewsize || $dt[9]>$config_previewsize){
echo'<a href="index.php?action=showimg&gid='.$dt[6].'&start='.$start.'&'.SID.'"><img src="resize.php?act='.$ext.'&gdir=local&gpoddir=datagallery&gname='.$dt[6].'&maxsize='.$config_previewsize.'" alt=""></a>';
}else{
echo'<a href="index.php?action=showimg&gid='.$dt[6].'&start='.$start.'&'.SID.'"><img src="gallery.php?image='.$dt[6].'" alt=""></a>';
}
echo'<br>'.$dt[0].'<br>';
echo 'Добавлено: <a href="../pages/anketa.php?uz='.$dt[2].'&'.SID.'">'.nickname($dt[2]).'</a> ('.date_fixed($dt[4]).')<br>';
echo '<a href="index.php?action=komm&gid='.$dt[6].'&'.SID.'">Комментарии</a> ('.(int)$totalkomm.')';
echo '</div></div>';
}
echo'<div class=body>';
if ($start != 0) {echo '<a href="index.php?start='.($start - $config_fotolist).'&'.SID.'"><пред.</a> ';}else{echo'<пред.';}
echo' | ';
if ($total > $start + $config_fotolist) {echo ' <a href="index.php?start='.($start + $config_fotolist).'&'.SID.'">след.></a>';}else{echo'след.>';}
if($total>0){
$ba=ceil($total/$config_fotolist);
$ba2=$ba*$config_fotolist-$config_fotolist;
echo '<br>Стр.:';
$asd=$start-($config_fotolist*4);
$asd2=$start+($config_fotolist*5);
if($asd<$total && $asd>0){echo ' <a href="index.php?start=0&'.SID.'">1</a> ... ';}
for($i=$asd; $i<$asd2;){
if($i<$total && $i>=0){
$ii=floor(1+$i/$config_fotolist);
if ($start==$i) {
echo ' <b>('.$ii.')</b> ';
} else {
echo ' <a href="index.php?start='.$i.'&'.SID.'">'.$ii.'</a>';
}}
$i=$i+$config_fotolist;
}
if($asd2<$total){echo ' ... <a href="index.php?start='.$ba2.'&'.SID.'">'.$ba.'</a>';}
}
}else{echo'<div class=body><b>Галерея еще пустая, фотографий нет!</b></div>';}
echo'</div><div class=panel>Всего фотографий: <b>'.(int)$total.'</b></div>';
}
##########################################################################
## Просмотр полной фотографии
##########################################################################
if($action=="showimg"){
echo'<div class=tp>Просмотр фотографий</div>';
$lines = file(BASEDIR."local/datagallery/fotobase.dat");
if(file_exists(BASEDIR."local/datagallery/fotobase.dat")){
foreach($lines as $k){
$dtu=explode("|",$k);
if($dtu[6]==$gid){ $errgallery='ok';
$totalkomm=0;
if (file_exists("../local/datagallery/$dtu[6].dat")){
$file = file("../local/datagallery/$dtu[6].dat");
$totalkomm = count($file);}
echo '<div class=body>» ';
echo '<b>'.$dtu[1].'</b> ('.$dtu[7].' Kb)<br>';
echo'<a href="gallery.php?image='.$dtu[6].'"><img src="gallery.php?image='.$dtu[6].'" alt=""></a>';
echo '<br>'.$dtu[0].'<br>';
echo 'Размер: <b>'.$dtu[8].' х '.$dtu[9].'</b><br>';
echo 'Добавил: <a href="../pages/anketa.php?uz='.$dtu[2].'&'.SID.'">'.nickname($dtu[2]).'</a> ('.date_fixed($dtu[4]).')<br>';
echo '<a href="index.php?action=komm&gid='.$dtu[6].'&'.SID.'">Комментарии</a> ('.(int)$totalkomm.')';
echo '</div>';
}}
if($errgallery!='ok'){echo '<b>Ошибка, такой фотографии не существует!</b><br>';}
}else{echo '<b>Произошла ошибка, фотографий еще нет!</b>';}
echo'<div class=panel>[<a href="index.php?start='.$start.'&'.SID.'">Вернуться</a>]</div>';
}
##########################################################################
## Форма загрузки фото
##########################################################################
if($action=="addfoto"){
echo'<div class=tp> <b>Добавление фотографии</b></div>';
if ($_SESSION['log']!="" && md5($_SESSION['par'])!="" && md5($_SESSION['par'])==$provpar && $_SESSION['log']==$provlog ) {
if($config_themes!="wml"){
echo '<div class=body><form action="index.php?action=add&'.SID.'" 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><textarea cols="25" rows="3" name="msg"></textarea><br>';
echo '<input name="ashow" type="checkbox" value="1" />Отображать в анкете<br>';
echo '<input type="submit" value="Добавить" /></form>';
echo 'Разрешается добавлять фотки с расширением jpg, gif и png<br>';
echo 'Весом не более '.formatsize($config_filesize).' и размером не более '.(int)$config_filefoto.'*'.(int)$config_filefoto.' px</div>';
}else{
echo'Для того чтобы добавить фото у вас должен быть включен не wml-cкин<br>Измените тему у себя в настройках!';}
}else{
echo '<div class="body">Вы не авторизованы, чтобы добавить фотографию необходимо<br>';
echo '<b><a href="../pages/vhod.php?'.SID.'">Авторизоваться</a></b> или в начале <b><a href="../pages/registration.php?'.SID.'">Зарегистрироваться</a></b></div>';
}
echo'<div class=panel>[<a href="index.php?start='.$start.'&'.SID.'">Вернуться</a>]</div>';
}
##########################################################################
## Загрузка фото
##########################################################################
if($action=="add"){
echo'<div class=tp> <b>Результат добавления</b></div>';
if ($_SESSION['log']!="" && md5($_SESSION['par'])!="" && md5($_SESSION['par'])==$provpar && $_SESSION['log']==$provlog ) {
if($name!="" && $msg!=""){
if (strlen(utf_to_win($name))<50 && strlen(utf_to_win(trim($name))) > 4) {
if (strlen(utf_to_win($msg))<750 && strlen(utf_to_win(trim($msg))) > 10) {
$newfotosize=$_FILES['file']['size'];
$newfotoname=$_FILES['file']['name'];
$newfotorazmer = GetImageSize($_FILES['file']['tmp_name']);
$width = $newfotorazmer[0];
$height = $newfotorazmer[1];
$lines = file(BASEDIR."local/datagallery/fotobase.dat");
foreach($lines as $k){
$dtu=explode("|",$k);
if($dtu[6]==$newfotoname){$errgallery='ok';}}
if($errgallery!='ok'){
$ext = strtolower(substr($newfotoname, 1 + strrpos($newfotoname, ".")));
if($ext=="jpg" || $ext=="gif" || $ext=="png"){
if(!eregi("[^a-z0-9._-]",$newfotoname)){
if(strlen($newfotoname)<=30){
if($width<=$config_filefoto && $height<=$config_filefoto && $height>10 && $width>10) {
if($newfotosize<=$config_filesize && $newfotosize>0) {
//--------------------- Новый антифлуд -----------------------------//
if($config_floodstime > 0){
if(flooder($ip, $php_self) == TRUE ){header ("Location: index.php?action=addfoto&isset=antiflood&".SID); 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=addfoto&isset=karantin&".SID); exit;}
}
$log=check($log);
$msg=check($msg);
$msg=no_br($msg,"<br>");
$name=check($name);
$newfotoname=check($newfotoname);
$newfotosize=round($newfotosize/1024,1);
if(copy($_FILES['file']['tmp_name'], BASEDIR."local/datagallery/".$_FILES['file']['name'])){
$newfile=$_FILES['file']['name'];
chmod($newfile, 0777);
chmod("../local/datagallery/$newfile", 0777);
$text=$msg.'|'.$name.'|'.$log.'||'.$sitetime.'||'.$newfotoname.'|'.$newfotosize.'|'.$width.'|'.$height.'|';
$text=no_br($text);
$fp=fopen("../local/datagallery/fotobase.dat","a+");
if($fp){
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);
chmod("../local/datagallery/fotobase.dat", 0777);
}}
if($ashow==1){
//------------------------------ Запись в профиль ----------------------------//
$ufile = file(BASEDIR."local/profil/$log.prof");
$udata = explode(":||:",$ufile[0]);
$udata[72]=$newfotoname;
for ($u=0; $u<$config_userprofkey; $u++){
$utext.=$udata[$u].':||:';}
if($udata[0]!="" && $udata[1]!="" && $udata[4]!="" && $utext!=""){
$fp=fopen(BASEDIR."local/profil/$log.prof","a+");
flock($fp,LOCK_EX);
ftruncate($fp,0);
fputs($fp,$utext);
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
unset($utext);
}}
header ("Location: index.php?isset=addfoto&".SID);
}else{echo '<div class=body>Ошибка, максимальный вес фото должен быть не более '.formatsize($config_filesize).'</div>';}
}else{echo '<div class=body>Ошибка, максимальный размер файла должен быть не более '.(int)$config_filefoto.'*'.(int)$config_filefoto.' px</div>';}
}else{echo '<div class=body>Ошибка, слишком длинное название фото '.check($newfotoname).' (Не более 35 символов)</b></div>';}
}else{echo '<div class=body>Ошибка, недопустимое название '.check($newfotoname).', разрешены только цифры и знаки латинского алфавита!</div>';}
}else{echo '<div class=body>Ошибка, недопустимое расширение (Только gif, jpg или png)!</div>';}
}else{echo '<div class=body>Ошибка, фотография с названием '.check($newfotoname).' уже существует в базе!</div>';}
}else{echo '<div class=body>Слишком длинное или короткое описание (Необходимо от 10 до 750 символов)</div>';}
}else{echo '<div class=body>Слишком длинное или короткое название (Необходимо от 5 до 50 символов)</div>';}
}else{echo '<div class=body>Ошибка добавления, отсутствуют важные данные!</div>'; }
}else{
echo '<div class=body>Вы не авторизованы, чтобы добавить фотографию необходимо<br>';
echo '<b><a href="../pages/vhod.php?'.SID.'">Авторизоваться</a></b> или в начале <b><a href="../pages/registration.php?'.SID.'">Зарегистрироваться</a></b></div>';
}
echo'<div class=panel>[<a href="index.php?action=addfoto&'.SID.'">Вернуться</a>]</div>';
}
##########################################################################
## Добавление комментария
##########################################################################
if($action=="komm"){
if (preg_match('|^[a-z0-9_\.\-]+$|i', $gid)){
echo'<div class=tp> <b>Комментарии</b></div>';
if ($_SESSION['log']!="" && md5($_SESSION['par'])!="" && md5($_SESSION['par'])==$provpar && $_SESSION['log']==$provlog ) {
if($config_themes!="wml"){
echo'<div class=body><form action="index.php?action=addkomm&gid='.$gid.'&'.SID.'" method="post">';
echo'<b>Сообщение:</b><br>';
echo'<textarea cols="20" rows="1" name="msg"></textarea><br>';
if($config_translit=="1"){
echo'<input name="trans" type="checkbox" value="y" />Транслит<br>';}
echo'<input type="submit" value="Написать" /></form></div>';
}else{
echo'<br>Сообщение:<br>';
echo'<input name="msg" /><br>';
if($config_translit=="1"){
echo'Транслит: <select name="trans"><option value="0">Нет</option>';
echo'<option value="y">Да</option>';
echo'</select><br>';}
echo'<anchor>Написать';
echo'<go href="index.php?action=addkomm&gid='.$gid.'&'.SID.'" method="post">';
echo'<postfield name="msg" value="$(msg)"/>';
echo'<postfield name="trans" value="$(trans)"/>';
echo'</go></anchor><br>--------------------<br>';
}
}else{
echo '<div class="body">Вы не авторизованы, чтобы добавить сообщение необходимо<br>';
echo '<b><a href="../pages/vhod.php?'.SID.'">Авторизоваться</a></b> или в начале <b><a href="../pages/registration.php?'.SID.'">Зарегистрироваться</a></b></div>';
}
$file = file("../local/datagallery/$gid.dat");
$file = array_reverse($file);
$total = count($file);
if($total<1){echo '<div class=panel><b>Комментариев еще нет!</b></div>';}
$start = (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=forum>';
echo'<div class=r0> ';
if(!empty($udata[45])){
if($avv[43]!="" && $avv[43]!=""){
echo'';}else{
echo''; }
echo '<b><a href="../pages/anketa.php?uz='.$data[3].'&'.SID.'"> '.nickname($data[3]).' </a></b> '.user_online($data[3]);
}else{
echo'<b><a href="../pages/anketa.php?uz='.$data[3].'&'.SID.'"> '.nickname($data[3]).' </a></b> '.user_online($data[3]);
}
echo '<small> ('.date_fixed($data[2]).')</small>';
//------------------------------Удаление для модеров---------------------------//
if($provpar==md5($_SESSION['par']) && $provlog==$_SESSION['log']) {
if ($dostup==101 || $dostup==102 || $dostup==103 || $dostup==105){
echo ' <a href="index.php?action=del&gid='.$gid.'&num='.$num.'&start='.$start.'&'.SID.'"><font color="#FF0000">[x]</font></a>';
}}
echo '<br>'.$data[0].'</div>';
}
echo'<div class=body>';
if ($start != 0) {echo '<a href="index.php?action=komm&gid='.$gid.'&start='.($start - $config_postgallery).'&'.SID.'"><пред.</a> ';}else{echo'<пред.';}
echo ' | ';
if ($total > $start + $config_postgallery) {echo ' <a href="index.php?action=komm&gid='.$gid.'&start='.($start + $config_postgallery).'&'.SID.'">след.></a>';}else{echo'след.>';}
if($total>0){
$ba=ceil($total/$config_postgallery);
$ba2=$ba*$config_postgallery-$config_postgallery;
echo '</div>Стр.:';
$asd=$start-($config_postgallery*3);
$asd2=$start+($config_postgallery*4);
if($asd<$total && $asd>0){echo ' <a href="index.php?action=komm&gid='.$gid.'&start=0&'.SID.'">1</a> ... ';}
for($i=$asd; $i<$asd2;)
{
if($i<$total && $i>=0){
$ii=floor(1+$i/$config_postgallery);
if ($start==$i) {
echo ' <b>'.$ii.'</b>';
} else {
echo ' <a href="index.php?action=komm&gid='.$gid.'&start='.$i.'&'.SID.'">'.$ii.'</a>';
}}
$i=$i+$config_postgallery;}
if($asd2<$total){echo ' ... <a href="index.php?action=komm&gid='.$gid.'&start='.$ba2.'&'.SID.'">'.$ba.'</a>';}
}
} else {echo '<b>Ошибка! Недопустимое название изображения!</b>';}
echo'<div class=panel>[<a href="index.php?'.SID.'">Вернуться</a>]</div>';
}
##########################################################################
## Запись комментариев
##########################################################################
if($action=="addkomm"){
echo'<div class="tp">Добавление комментария</div><div class="body">';
if (preg_match('|^[a-z0-9_\.\-]+$|i', $gid)){
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&gid=$gid&isset=antiflood&".SID); 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/datagallery/$gid.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);
chmod("../local/datagallery/$gid.dat", 0777);
/////////////////////////////////////
$f = file("../local/local.dat");
$u = explode("|",$f[0]);
$u[5]++;
$t=$u[0].'|'.$u[1].'|'.$u[2].'|'.$u[3].'|'.$u[4].'|'.$u[5].'|'.$u[6].'|'.$u[7].'|'.$u[8].'|'.$u[9].'|'.$u[10].'|';
$fp = fopen("../local/local.dat","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
fputs($fp,$t);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
///////////////////////////
$file=file("../local/datagallery/$gid.dat");
$i = count($file);
if ($i>=$config_maxpostgallery) {
$fp=fopen("../local/datagallery/$gid.dat","w");
flock ($fp,LOCK_EX);
unset($file[1],$file[2]);
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);
chmod("../local/datagallery/$gid.dat", 0777);}
//------------------------------ Запись в профиль ----------------------------//
$ufile = file(BASEDIR."local/profil/$log.prof");
$udata = explode(":||:",$ufile[0]);
$udata[14]=$ip;
$udata[33]++;
$udata[36]++;
$udata[41]++;
for ($u=0; $u<$config_userprofkey; $u++){
$utext.=$udata[$u].':||:';}
if($udata[0]!="" && $udata[1]!="" && $udata[4]!="" && $utext!=""){
$fp=fopen(BASEDIR."local/profil/$log.prof","a+");
flock($fp,LOCK_EX);
ftruncate($fp,0);
fputs($fp,$utext);
fflush($fp);
flock($fp,LOCK_UN);
fclose($fp);
unset($utext);
}
//Ваш комментарий успешно добавлен!
header("location: index.php?action=komm&gid=$gid&isset=addkomm&".SID);
}else{echo'<b>Ошибка, такой фотографии не существует!</b><br>'; }
}else{echo'<b>Вы не написали комментарий или он слишком короткий</b><br>'; }
}else{
echo '<div class="body">Вы не авторизованы, чтобы добавить сообщение необходимо<br>';
echo '<b><a href="../pages/vhod.php?'.SID.'">Авторизоваться</a></b> или в начале <b><a href="../pages/registration.php?'.SID.'">Зарегистрироваться</a></b></div>';
}
} else {echo '<b>Ошибка! Недопустимое название изображения!</b>';}
echo'<div class=btm>- <a href="index.php?action=komm&gid='.$gid.'&'.SID.'">Вернуться</a><br>';
echo'- <a href="index.php?'.SID.'">В галерею</a></div>';
}
##########################################################################
## Удаление комментариев
##########################################################################
if($action=="del"){
if($provpar==md5($_SESSION['par']) && $provlog==$_SESSION['log']) {
if ($dostup==101 || $dostup==102 || $dostup==103 || $dostup==105){
if ($num!="" && $gid!=""){
$file=file("../local/datagallery/$gid.dat");
$fp=fopen("../local/datagallery/$gid.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);
}
header("location: index.php?action=komm&gid=$gid&start=$start&isset=delkomm&".SID);
}}else{
header("location: index.php?action=komm&gid=$gid&start=$start&".SID);
}}
echo '<div class="btm">[<a href="../index.php?'.SID.'">На главную</a>]</div>';
include_once "../themes/$config_themes/foot.php";
?>