View file forum.php

File size: 38.06Kb
<?php
#-----------------------------------------------------#
#          ********* WAP-MOTORS *********             #
#             Made by   :  VANTUZ                     #
#               E-mail  :  [email protected]             #
#                 Site  :  http://pizdec.ru           #
#             WAP-Site  :  http://visavi.net          #
#                  ICQ  :  36-44-66                   #
#  Вы не имеете право вносить изменения в код скрипта #
#-----------------------------------------------------#	
require_once"../template/start.php";
require_once"../template/regglobals.php";
require_once"../template/config.php";
require_once"../template/functions.php";
require_once"../template/maincore.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";

require_once"../template/isset.php";

$text = file("../local/profil/$log.prof"); 

if ($text!=""){
$udata = explode(":||:",$text[0]);
$provlog=trim($udata[0]);
$provpar=trim($udata[1]);
$dostup=trim($udata[7]);
$privat=trim($udata[10]);}

$locked=check($_POST['locked']);

if (!$_SESSION['log']=="" && !md5($_SESSION['par'])=="" && md5($_SESSION['par'])==$provpar && $_SESSION['log']==$provlog ) {
if ($dostup==101 || $dostup==102 || $dostup==103 || $dostup==105){
$date=date("d.m"); 
$time=date("H:i"); 

//----------------------------- Пересчет статистики ------------------------//
if(isset($event)) { 
if ($event =="revolushion") {
if ($dostup==101 || $dostup==102){
$lines = file("../local/dataforum/mainforum.dat");
$countmf=count($lines)-1;
$i="-1";$u=$countmf-1;$k="0";

do {$i++; $dt=explode("|", $lines[$i]);
if ($dt[1]!="razdel") {
$fid=$dt[0];
if ((is_file("../local/dataforum/topic$fid.dat")) && (sizeof("../local/dataforum/topic$fid.dat")>0))
{
$fl=file("../local/dataforum/topic$fid.dat");
$kolvotem=count($fl);
$kolvomsg="0";
for ($itf=0; $itf<$kolvotem; $itf++) 
{$forumdt = explode("|", $fl[$itf]);

$cd=$forumdt[7];
$msgfile=file("../local/dataforum/$cd.dat");
$countmsg=count($msgfile); $kolvomsg=$kolvomsg+$countmsg;}
if ($kolvotem=="0") {$dt[8]="";}
$lines[$i]=$dt[0].'|'.$dt[1].'|'.$dt[2].'|'.$dt[3].'|'.$kolvotem.'|'.$kolvomsg.'|'.$dt[6].'|'.$dt[7].'|'.$dt[8].'|'.$dt[9].'|'.$dt[10].'|';
}else{
$kolvotem="0"; 
$kolvomsg="0"; 
$lines[$i]=$dt[0].'|'.$dt[1].'|'.$dt[2].'|'.$dt[3].'|'.$kolvotem.'|'.$kolvomsg.'|'.$dt[6].'|'.$dt[7].'|'.$dt[8].'||'.$dt[10].'|';
}
}
else {$lines[$i]=$dt[0].'|'.$dt[1].'|'.$dt[2].'|';}
} while($i < $countmf);

$file=file("../local/dataforum/mainforum.dat");
$fp=fopen("../local/dataforum/mainforum.dat","w");
flock ($fp,LOCK_EX); 
for ($i=0;$i< sizeof($file);$i++) {fputs($fp,"$lines[$i]\r\n");}
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);

echo 'Всё успешно пересчитано<br>';
echo '<a href="forum.php?'.SID.'">Продолжить</a><br>'; 
include_once"../themes/$config_themes/foot.php";
exit; }}}




//------------------------ Cдвиг топиков -------------------------------//
if(isset($movetopic)) { if ($movetopic!="") {
$move1=$movetopic;
if ($where=="0") {$where="-1";}
$move2=$move1-$where;
$file=file("../local/dataforum/mainforum.dat"); $imax=sizeof($file);
if (($move2>=$imax) or ($move2<"0")) {
echo 'Нельзя туда двигать!<br>'; 
echo '<a href="forum.php?'.SID.'">Продолжить</a><br>'; 
include_once"../themes/$config_themes/foot.php"; 
exit;}
$data1=$file[$move1]; $data2=$file[$move2];

$fp=fopen("../local/dataforum/mainforum.dat","a+");
flock ($fp,LOCK_EX); 
ftruncate ($fp,0);
for ($i=0; $i<$imax; $i++) {if ($move1==$i) {fputs($fp,$data2);} else  {if ($move2==$i) {fputs($fp,$data1);} else {fputs($fp,$file[$i]);}}}
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);
header ("Location: forum.php?".SID);
//Раздел успешно сдвинут!
exit;}}


//------------------------ Подтверждение удаления топиков -------------------------------//
if(isset($provtop)) {
echo 'Вы действительно хотите удалить топик?<br>';
echo 'Прежде чем удалить его необходимо удалить все темы внутри вручную<br>';
echo '<a href="forum.php?fxd='.$provtop.'&amp;'.SID.'">Удалить</a><br>';
echo '<a href="forum.php?'.SID.'">Вернуться назад</a><br>';
include_once"../themes/$config_themes/foot.php"; 
exit;
}
//------------------------ Удаление топиков -------------------------------//
if(isset($fxd)) { if ($fxd!="") {
$file=file("../local/dataforum/mainforum.dat");
$fp=fopen("../local/dataforum/mainforum.dat","w");
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$fxd) {unset($file[$i]);} }
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);
header ("Location: forum.php?".SID);
//Раздел успешно удален!
exit; }}


//----------------------- Удаление тем --------------------------------//
if (isset($xd)) { if ($xd!="") {
$file=file("../local/dataforum/topic$fid.dat");
$i=0;
while (isset($file[$i])) 
   { $dt = explode("|", $file[$i]);
      if ($dt[7]==$xd) 
         {unset($file[$i]);} 
	  $i++;
	  unset($dt);
	}

unlink ("../local/dataforum/$xd.dat");
$fp=fopen("../local/dataforum/topic$fid.dat","w");
flock ($fp,LOCK_EX); 
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);
header ("Location: forum.php?fid=$fid&".SID);
//Тема успешно удалена! 
exit; }}


//----------------------- Удаление сообщений --------------------------------//
if (isset($topicxd)) { if ($topicxd!="") {
$topicxd=$topicxd-1;
$file=file("../local/dataforum/$id.dat");

if (count($file)==1) {
echo ' В ТЕМЕ должно остаться хотябы одно сообщение! <br>';
echo '<a href="forum.php?event=topic&amp;fid='.$fid.'&amp;id='.$id.'&amp;page='.$page.'&amp;'.SID.'">Продолжить</a><br>';  include_once"../themes/$config_themes/foot.php"; 
exit;}

$fp=fopen("../local/dataforum/$id.dat","w");
flock ($fp,LOCK_EX);
for ($i=0;$i< sizeof($file);$i++) { if ($i==$topicxd) {unset($file[$i]);} }
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);

header ("Location: forum.php?event=topic&fid=$fid&id=$id&page=$page&".SID);
//Сообщение успешно удалено!
exit; }}


//----------------------- Добавление разделов --------------------------------//
if(isset($event)) { 
if ($event =="addmainforum") {	
if ($zag == "") {
echo '<b>Вернитесь назад и введите заголовок!</b><br>'; 
echo '<a href="forum.php?'.SID.'">Продолжить</a><br>';
include_once"../themes/$config_themes/foot.php"; 
exit;}

$nextnum="1";
if (is_file("../local/dataforum/mainforum.dat")) { 
$lines=file("../local/dataforum/mainforum.dat"); 
$imax = count($lines); $i=0; 
do {$dt = explode("|", $lines[$i]); 
if ($nextnum<$dt[0]) {$nextnum=$dt[0];} $i++; 
} 
while($i < $imax); $nextnum++; }

$msg=check($msg);
$zag=check($zag);

if ($ftype == "") {
$txtmf=$nextnum.'|'.$zag.'|'.$msg.'||0|0||'.$date.'|'.$time.'|||';
} else {
$txtmf=$nextnum.'|'.$ftype.'|'.$zag.'|';
}
$txtmf=preg_replace ("|[\r\n]+|si","",$txtmf);

$fp=fopen("../local/dataforum/mainforum.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$txtmf\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);

header ("Location: forum.php?".SID);
//Раздел успешно добавлен! 
exit; }


//----------------------- Переименование раздела --------------------------------//
if ($event =="frdmainforum") {

if ($zag == "") { 
echo '<b>Вернитесь назад и введите заголовок!</b><br>'; 
echo '<a href="forum.php?'.SID.'">Продолжить</a><br>';
include_once"../themes/$config_themes/foot.php"; 
exit;}

$msg=check($msg);
$zag=check($zag);
$zag=preg_replace ("|[\r\n]+|si","",$zag);
$msg=preg_replace ("|[\r\n]+|si","",$msg);
if ($ftype == "")
{
$txtmf=$nextnum.'|'.$zag.'|'.$msg.'|'.$idtemka.'|'.$kt.'|'.$km.'|'.$namem.'|'.$datem.'|'.$timem.'|'.$timetk.'|'.$temka.'|';}
else {$txtmf=$nextnum.'|'.$ftype.'|'.$zag.'|';}

$file=file("../local/dataforum/mainforum.dat");
$fp=fopen("../local/dataforum/mainforum.dat","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
for ($i=0;$i< sizeof($file);$i++) {if ($frd!=$i) {fputs($fp,$file[$i]);} else {fputs($fp,"$txtmf\r\n");}}
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);

header ("Location: forum.php?".SID);
//Раздел успешно переименован
exit; }



//----------------------- Закрытие тем --------------------------------//
if ($event=="zakr")  {
$file=file("../local/dataforum/$id.dat");
$file=array_reverse($file);
$post=explode('|',$file[0]);
if (ereg("ON",$post[10]))
    {$locked="ON";}
else {$locked="OFF"; }
unset($post);
unset($file);
$mio="[$brow, $ip]";
$text=$log.'|рус|'.$mio.'|'.$zag.'|Тема закрыта для обсуждения!|'.$date.'|'.$time.'|'.$id.'|'.$fid.'|CLOSED|'.$locked;

$text=stripslashes($text);
$fp=fopen("../local/dataforum/$id.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);

//Тема закрыта для обсуждения!
if (ereg("mpanel/forum.php",$_SERVER['HTTP_REFERER']))
    {header ("Location: forum.php?event=topic&fid=$fid&id=$id&".SID);}
else {header ("Location: ../forum/index.php?fid=$fid&id=$id&".SID); }
exit;}



//-------------------------- Открытие тем ----------------------------//

if ($event=="otkr")  {
	
$file=file("../local/dataforum/$id.dat");
$file=array_reverse($file);
$fp=fopen("../local/dataforum/$id.dat","w");
flock ($fp,LOCK_EX);

unset($file[0]);
$file=array_reverse($file);
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);

//Тема снова открыта
if (ereg("mpanel/forum.php",$_SERVER['HTTP_REFERER']))
    {header ("Location: forum.php?event=topic&fid=$fid&id=$id&".SID);}
else {header ("Location: ../forum/index.php?fid=$fid&id=$id&".SID); }
exit;}

//----------------------- Закрепление тем --------------------------------//
if ($event=="locked")  {
//-------------------------------------
$file=file("../local/dataforum/topic$fid.dat");
foreach($file as $index => $val)
      {$alldata = explode("|",$file[$index]);
       if($alldata[7]==$id)
	      {$file[$index]= $alldata[0] .'|'. $alldata[1] .'|'. $alldata[2] .'|'. $alldata[3] .'|'. $alldata[4] .'|'. $alldata[5] .'|'. $alldata[6] .'|'. $alldata[7] .'|'. $alldata[8] .'|'. $alldata[9] .'|'. "ON\r\n";
		   $fp=fopen("../local/dataforum/topic$fid.dat","w");
           flock ($fp,LOCK_EX);
           fputs($fp, implode("",$file));
           flock ($fp,LOCK_UN);
           fclose($fp);
           chmod("$fp", 0777); 
		   }
       }
//----------------------------------------
$file=file("../local/dataforum/$id.dat");
$file=array_reverse($file);
$fp=fopen("../local/dataforum/$id.dat","w");
flock ($fp,LOCK_EX);

$post= explode("|", $file[0]);
$file[0]= $post[0] .'|'. $post[1] .'|'. $post[2] .'|'. $post[3] .'|'. $post[4] .'|'. $post[5] .'|'. $post[6] .'|'. $post[7] .'|'. $post[8] .'|'. $post[9] .'|'. "ON\r\n";
$file=array_reverse($file);
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);

//Тема закруплена!
if (ereg("mpanel/forum.php",$_SERVER['HTTP_REFERER']))
    {header ("Location: forum.php?event=topic&fid=$fid&id=$id&".SID);}
else {header ("Location: ../forum/index.php?fid=$fid&id=$id&".SID); }
exit;}



//-------------------------- Открепление тем ----------------------------//

if ($event=="unlocked")  {
//-------------------------------------
$file=file("../local/dataforum/topic$fid.dat");
foreach($file as $index => $val)
      {$alldata = explode("|",$file[$index]);
       if($alldata[7]==$id)
	      {$file[$index]= $alldata[0] .'|'. $alldata[1] .'|'. $alldata[2] .'|'. $alldata[3] .'|'. $alldata[4] .'|'. $alldata[5] .'|'. $alldata[6] .'|'. $alldata[7] .'|'. $alldata[8] .'|'. $alldata[9] .'|'. "OFF\r\n";
		   $fp=fopen("../local/dataforum/topic$fid.dat","w");
           flock ($fp,LOCK_EX);
           fputs($fp, implode("",$file));
           flock ($fp,LOCK_UN);
           fclose($fp);
           chmod("$fp", 0777); 
		   }
       }
//----------------------------------------
$file=file("../local/dataforum/$id.dat");
$file=array_reverse($file);
$fp=fopen("../local/dataforum/$id.dat","w");
flock ($fp,LOCK_EX);

$post= explode("|", $file[0]);
$file[0]= $post[0] .'|'. $post[1] .'|'. $post[2] .'|'. $post[3] .'|'. $post[4] .'|'. $post[5] .'|'. $post[6] .'|'. $post[7] .'|'. $post[8] .'|'. $post[9] .'|'. "OFF\r\n";
$file=array_reverse($file);
fputs($fp, implode("",$file));
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);

//Тема снова откреплена
if (ereg("mpanel/forum.php",$_SERVER['HTTP_REFERER']))
    {header ("Location: forum.php?event=topic&fid=$fid&id=$id&".SID);}
else {header ("Location: ../forum/index.php?fid=$fid&id=$id&".SID); }
exit;}



//------------------------ Переименование темы -------------------------------//

if ($event=="rdtema") { 
	
$zag=check($zag);

if ($zag == "") { 
echo '<b>Вернитесь назад и введите ТЕМУ!</b><br>'; 
echo '<a href="forum.php?fid='.$fid.'&amp;rd='.$rd.'&amp;'.SID.'">Продолжить</a><br>';
include_once"../themes/$config_themes/foot.php"; 
exit;}
 
$txtmf=$name.'|рус|'.$email.'|'.$zag.'|'.$msg.'|'.$datem.'|'.$timem.'|'.$id.'||'.$timetk.'|'. $locked ;

$file=file("../local/dataforum/topic$fid.dat");
$i=0;
while (isset($file[$i])) 
   { $dt = explode("|", $file[$i]);
      if ($dt[7]==$rd ) 
         { $file[$i] = $txtmf . "\r\n";} 
	  $i++;
	  unset($dt);
	}
$fp=fopen("../local/dataforum/topic$fid.dat","a+");
flock ($fp,LOCK_EX); 
ftruncate ($fp,0); 
fputs($fp, implode( "", $file));
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);

###############################################
$lines = file("../local/dataforum/mainforum.dat");
$i3=count($lines);
do {$i3--; $dd = explode("|", $lines[$i3]);
if ($dd[0]==$fid) {$realfid=$i3; } 
} while($i3>0);
$dd = explode("|", $lines[$realfid]);
if ($id==$dd[3]){

$txtdat=$dd[0].'|'.$dd[1].'|'.$dd[2].'|'.$dd[3].'|'.$dd[4].'|'.$dd[5].'|'.$dd[6].'|'.$dd[7].'|'.$dd[8].'|'.$dd[9].'|'.$zag.'|'.$dd[10];

$fp2=fopen("../local/dataforum/mainforum.dat","a+");
flock ($fp2,LOCK_EX); 
ftruncate ($fp2,0);
for ($i2=0;$i2<=(sizeof($lines)-1);$i2++) {if ($i2==$realfid) {fputs($fp2,"$txtdat\r\n");} else {fputs($fp2,$lines[$i2]);}}
fflush ($fp2);
flock ($fp2,LOCK_UN);
fclose($fp2);
chmod($fp2, 0777);}

####################################################

$file1=file("../local/dataforum/$id.dat");
$fs=count($file1)-1; 
$i1="-1";
$dt = explode("|", $file1[$fs]);

$text1=$dt[0].'||'.$dt[2].'|'.$zag.'|'.$dt[4].'|'.$dt[5].'|'.$dt[6].'|'.$id.'||'.$dt[7].'|'.$dt[10];

$text1=preg_replace ("|[\r\n]+|si","",$text1);

$fp1=fopen("../local/dataforum/$id.dat","a+");
flock ($fp1,LOCK_EX); 
ftruncate ($fp1,0);

do {$i1++; if ($i1==$fs) {fputs($fp1,"$text1\r\n");} else {fputs($fp1,$file1[$i1]);} } while($i1 < $fs);
fflush ($fp1);
flock ($fp1,LOCK_UN);
fclose($fp1);
chmod($fp1, 0777);

#########################################################
header ("Location: forum.php?fid=$fid&".SID);
//Тема успешно изменена!
exit; }



//-------------------------------------------------------//


} 

if(isset($event)){ 

if (($event=="addtopic") or ($event=="addanswer")) {

if (!isset($fid)) { echo'<b>Ошибка скрипта или попытка взлома!</b>'; 
include_once"../themes/$config_themes/foot.php"; 
exit;}


$mainlines = file("../local/dataforum/mainforum.dat"); $i=count($mainlines);
do {$i--; $dt = explode("|", $mainlines[$i]);
if ($dt[0]==$fid) {$realfid=$i; if ($dt[1]=="razdel") { 
echo 'Попытка взлома, Идите нахуй!'; 
include_once"../themes/$config_themes/foot.php"; exit;}} 

} while($i>0);


if (strlen($msg) > 1200 || strlen($msg) < 1) {
echo '<b>Ваше сообщение пустое или слишком длинное.</b><br>';
echo '<a href="forum.php?newtema=add&amp;fid='.$fid.'&amp;'.SID.'">Повторить</a><br>'; 
include_once"../themes/$config_themes/foot.php"; 
exit;}

if (strlen($zag) > 150 || strlen($zag) < 5 ) { 
echo '<b>Ваш заголовок пустой или слишком длинный!</b><br>'; 
echo '<a href="forum.php?newtema=add&amp;fid='.$fid.'&amp;'.SID.'">Повторить</a><br>'; 
include_once"../themes/$config_themes/foot.php"; 
exit;}


if ($event=="addtopic") {
$tt=explode(' ', microtime()); 
$ttt="$tt[1]"+"$tt[0]"; 
$ttf=str_replace(".", "", $ttt); 
$id = $ttf;}

$tektime=time();
$mio="[$brow, $ip]";
if (isset($_POST['locked']) && $_POST['locked']=="ON")
    { $locked="ON";}
else { $locked="OFF";}

$log=check($log);
$mio=check($mio);
$zag=check($zag);
$msg=check($msg);
$msg = smiles($msg);
$date=check($date);
$time=check($time);
$id=check($id);
$tektime=check($tektime);

$msg=preg_replace ("|[\r\n]+|si","<br>",$msg);
$text=$name.'|рус|'.$mio.'|'.$zag.'|'.$msg.'|'.$date.'|'.$time.'|'.$id.'|'.$fid.'|'.$tektime.'|'.$locked;
$text=preg_replace ("|[\r\n]+|si","",$text);



if(isset($topicrd)) { 

$file=file("../local/dataforum/$id.dat");
$fs=count($file)-1; 
$i="-1";

$fp=fopen("../local/dataforum/$id.dat","a+");
flock ($fp,LOCK_EX); 
ftruncate ($fp,0);
do {$i++; if ($i==$topicrd) {fputs($fp,"$text\r\n");} else {fputs($fp,$file[$i]);} } while($i < $fs);
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod("$fp", 0777);
header ("Location: forum.php?event=topic&fid=$fid&id=$id&page=$page&".SID);

//Сообщение успешно изменено!
include_once"../themes/$config_themes/foot.php";  
exit; }


$zag=utf_to_win($zag);
if (strlen($zag)>30) {$zag=substr($zag,0,30); $zag.="...";}
$zag=win_to_utf($zag);

$lines = file("../local/dataforum/mainforum.dat");
$dt = explode("|", $lines[$realfid]);
if ($event=="addtopic") {$dt[4]++;} $dt[5]++;
$txtdat=$dt[0].'|'.$dt[1].'|'.$dt[2].'|'.$id.'|'.$dt[4].'|'.$dt[5].'|'.$name.'|'.$date.'|'.$time.'|'.$tektime.'|'.$zag.'|';


$fp=fopen("../local/dataforum/mainforum.dat","a+");
flock ($fp,LOCK_EX); 
ftruncate ($fp,0);
for ($i=0;$i<=(sizeof($lines)-1);$i++) {
if ($i==$realfid) {fputs($fp,"$txtdat\r\n");} else {fputs($fp,$lines[$i]);}}
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);
}






//------------------------ Добавление новой темы ---------------------------------//
if ($event =="addtopic") { 
$fp=fopen("../local/dataforum/topic$fid.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);



$fp=fopen("../local/dataforum/$id.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);
header ("Location: forum.php?event=topic&fid=$fid&id=$id&".SID);
//Тема успешно добавлена
exit; }



if ($event=="addanswer") { 
$fp=fopen("../local/dataforum/$id.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);
// обновление топика тем
$file=file("../local/dataforum/topic$fid.dat");
foreach($file as $index => $val)
      {$alldata = explode("|",$file[$index]);
       $alldata2 = explode("|",$text);
       if($alldata[7]==$alldata2[7])
	      {$fp=fopen("../local/dataforum/topic$fid.dat","w");
           flock ($fp,LOCK_EX);
           unset($file[$index]);
           fputs($fp, implode("",$file));
           flock ($fp,LOCK_UN);
           fclose($fp);
           chmod("$fp", 0777); 
		   }
       }
$fp=fopen("../local/dataforum/topic$fid.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod("$fp", 0777);

//Сообщение успешно добавлено
header ("Location: forum.php?event=topic&fid=$fid&id=$id&page=$page&".SID);
exit;}

} 


///////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (isset($fid)) {
$mainlines = file("../local/dataforum/mainforum.dat");
$i=count($mainlines);

if (!ctype_digit($fid)) { 
echo '<h3>ОШИБКА!</h3>'; 
include_once"../themes/$config_themes/foot.php"; 
exit;}

do {$i--; $rdt = explode("|", $mainlines[$i]);
$dt = explode("|", $mainlines[$i]);
if ($dt[0]==$fid) {$i=0;}
} while($i > "1");


$frname=$dt[1]; 
$frname.=' -';

if (isset($id)) {if (is_file("../local/dataforum/$id.dat")) {$lines = file("../local/dataforum/$id.dat"); $dt = explode("|", $lines[0]); $frtname=$dt[3]; $frtname.=" -";} else {$frtname=""; $frname="";}} else {$frtname="";} } else {$frname=""; $frtname="";}

if ($dostup==101 || $dostup==102){
echo '<b><a href="forum.php?event=revolushion&amp;'.SID.'">Пересчитать</a></b><br>';}
if (isset($fid))
    {echo '<a href="forum.php?'.SID.'"><b>Форум</b></a>';}
else { echo '<b>Форум</b>';}

if (!isset($_GET['event'])) {
if (!isset($_GET['fid'])) {

echo '<br><hr>';

if ($dostup==101 || $dostup==102){

$addform='<hr><form action="forum.php?event=addmainforum&amp;'.SID.'" method="post"><b><u>Добавление Раздела</u></b><br>
Заголовок:<br><input type="text" name="zag" size=30 />
<input type="hidden" name="ftype" value="" />
<input type="submit" value="Добавить" /></form>';}



if (!is_file("../local/dataforum/mainforum.dat")) {
echo '<h3>Разделы не созданы - добавьте раздел.</h3>'.$addform; 
include_once"../themes/$config_themes/foot.php"; 
exit;} 


$lines = file("../local/dataforum/mainforum.dat"); 
$datasize = sizeof($lines);
if ($datasize==0) {
echo '<h3>Разделы не созданы - добавьте раздел.</h3>'.$addform; 
include_once"../themes/$config_themes/foot.php"; 
exit;}



$i=count($lines);
$n="0"; $a1="-1"; $u=$i-1;
$fid="0"; $itogotem="0"; $itogomsg="0";
do {$a1++; $dt = explode("|", $lines[$a1]);
$fid=$dt[0];
if ($dt[1]=='razdel') {
echo $dt[2];}

else {
if ($dt[7]==$date) {$dt[7]='Сегодня';}
echo '<div class=b><img src="../images/img/forums.gif" alt=""> <a href="forum.php?fid='.$fid.'&amp;'.SID.'"><b>'.$dt[1].'</b></a>'; 
echo ' ('.$dt[4].'/'.$dt[5].')';

if ($dostup==101 || $dostup==102){
echo '<br>|<a href="forum.php?movetopic='.$a1.'&amp;where=1&amp;'.SID.'">вверх</a>';
echo '|<a href="forum.php?movetopic='.$a1.'&amp;where=0&amp;'.SID.'">вниз</a>';
echo '|<a href="forum.php?frd='.$a1.'&amp;'.SID.'">edit</a>';
echo '|<a href="forum.php?provtop='.$a1.'&amp;'.SID.'">del</a>|';
}

echo '</div><b>Тема:</b> <a href="forum.php?event=topic&amp;fid='.$fid.'&amp;id='.$dt[3].'&amp;'.SID.'">'.$dt[10] .'</a>';
if ($dt[10]=="") echo 'не созданы';
echo '<br>';
echo '<b>Сообщение:</b> '.$dt[6];
if ($dt[6]=="") echo 'не созданы';
echo ' ('.$dt[7].' - '.$dt[8].')';

$itogotem=$itogotem+$dt[4]; $itogomsg=$itogomsg+$dt[5]; }
} while($a1 < $u);


//------------------------ Форма редактирования раздела ---------------------------------//
if (isset($frd)) { 
if ($frd!="") {

$lines = file("../local/dataforum/mainforum.dat");
$dt = explode("|", $lines[$frd]);

echo '<hr><form action="forum.php?event=frdmainforum&amp;'.SID.'" method="post">';
echo '<br>Редактирование Форума';
echo '<input type="hidden" name="nextnum" value="'.$dt[0].'" />';

if ($dt[1]=='razdel') {
echo '<input type="hidden" name="ftype" value="razdel" />';
echo '<input type="text" value="'.$dt[2].'" name="zag" />';}

else {
echo '<input type="hidden" name="ftype" value="" /><br>';
echo '<input type="text" value="'.$dt[1].'" name="zag" />';

echo '<input type="hidden" name="idtemka" value="'.$dt[3].'" />';
echo '<input type="hidden" name="kt" value="'.$dt[4].'" />';
echo '<input type="hidden" name="km" value="'.$dt[5].'" />';
echo '<input type="hidden" name="namem" value="'.$dt[6].'" />';
echo '<input type="hidden" name="datem" value="'.$dt[7].'" />';
echo '<input type="hidden" name="timem" value="'.$dt[8].'" />';
echo '<input type="hidden" name="timetk" value="'.$dt[9].'" />';
echo '<input type="hidden" name="temka" value="'.$dt[10].'" />';
}

echo '<input type="hidden" name="frd" value="'.$frd.'" />';
echo '<input type="submit" value="Изменить" /></form>';

}} else { echo $addform;}

echo'<hr>Тем: <b>'.$itogotem.'</b><br>Постов: <b>'.$itogomsg.'</b>';

} else {
	
$fid=(int)$fid;
$forums = file("../local/dataforum/mainforum.dat");
###################################################

$iz=count($forums);

$az1='-1'; 
$ux=$iz-1;

do {$az1++;
$yy=explode("|", $forums[$az1]);
if ($yy[0]==$fid){$raz=$yy[1];}} while($az1 < $ux);
####################################################

echo '<a href="forum.php?'.SID.'">'.$fname.'</a> | ';
echo '<b>'.$raz.'</b> | ';
echo '<a href="forum.php?fid='.$fid.'&amp;newtema=add&amp;'.SID.'"><b>Новая тема</b></a><br><hr>';



if (is_file("../local/dataforum/topic$fid.dat")) {
$msglines=file("../local/dataforum/topic$fid.dat");

if (count($msglines)>0) {

$lines=file("../local/dataforum/topic$fid.dat");
///////////////////////////////////////////////////////////////////
$ups=0;
while (isset($lines[$ups]))
       { $well=explode("|", $lines[$ups]);
	     if ( !ereg ("ON" , $well[10]))
		     { $unlines[]= $lines[$ups]; }
		 $ups++;
	   }
$ups=0;
while (isset($lines[$ups]))
       { $well=explode("|", $lines[$ups]);
	     if ( ereg ("ON" , $well[10]))
		     { $unlines[]= $lines[$ups]; }
		 $ups++;
	   }
unset($lines);
$lines=$unlines;
////////////////////////////////////////////////////////////////////
$i=count($lines); 
$n="0";
if (!isset($page)) {$page="0";}



if ($page>=$i) {$page=$i-1;} 
if ($i-$page-$config_forumtem>=0) {$a1=$i-$page; $u=$a1-$config_forumtem;} else {$a1=$i-$page; $u=0;}



do {$a1--; $dt=explode("|", $lines[$a1]);

$filename=$dt[7]; 
if (is_file("../local/dataforum/$filename.dat")) {
$msgsize = sizeof(file("../local/dataforum/$filename.dat"));} 

$datatek=file("../local/dataforum/$filename.dat");
$pos=$msgsize-1;
$dtt = explode("|", $datatek[$pos]);

/////////////////
echo '<div class=b>';
if (ereg("ON",$dtt[10])) 
    { echo '<img src="../images/img/lock.gif" alt=""> ';}
if ($dtt[9]=="CLOSED")
    {echo '<img src="../images/img/zakr.gif" alt=""> ';} 
elseif(!ereg("ON",$dtt[10]))
    {echo '<img src="../images/img/forums.gif" alt=""> ';}
echo '<b><a href="forum.php?event=topic&amp;fid='.$fid.'&amp;id='.$dt[7].'&amp;'.SID.'">'.$dt[3].'</a></b>';
echo ' (Сообщений: '.$msgsize.')'; 
echo '<br>|<a href="forum.php?fid='.$fid.'&amp;rd='.$dt[7].'&amp;'.SID.'">edit</a>';
echo '|<a href="forum.php?fid='.$fid.'&amp;xd='.$dt[7].'&amp;'.SID.'">del</a>|</div>';

//--------------- Правильный пост. вывод для тем (превью) ---------------------//
if($msgsize>1){$tots=$msgsize-1;}else{$tots=$msgsize;}
$ba=ceil($tots/$config_forumpost);
$ba2=floor($tots/$config_forumpost)*$config_forumpost;

echo'<b>Страницы:</b>';

$asd2=$page+($config_forumpost*5);

for($i=0; $i<$asd2;)
{
if($i<$tots && $i>=0){
$ii=floor(1+$i/$config_forumpost);


echo ' <a href="forum.php?event=topic&amp;fid='.$fid.'&amp;id='.$dt[7].'&amp;page='.$i.'&amp;'.SID.'">'.$ii.'</a>';
}       

$i=$i+$config_forumpost;}
if($asd2<$tots){echo ' ... <a href="forum.php?event=topic&amp;fid='.$fid.'&amp;id='.$dt[7].'&amp;page='.$ba2.'&amp;'.SID.'">'.$ba.'</a>';}
//---------------------------------------------------------------------//


if ($msgsize>=2) {
$linesdat=file("../local/dataforum/$filename.dat"); 
$dtdat=explode("|", $linesdat[$msgsize-1]); 
$dt[0]=$dtdat[0]; 
$dt[1]=$dtdat[1]; 
$dt[2]=$dtdat[2]; 
$dt[5]=$dtdat[5]; 
$dt[6]=$dtdat[6];}



if ($dt[5]==$date) {$dt[5]='Сегодня';}
echo '<br><b>Посл. сообщение:</b> '.$dt[0].' ('.$dt[5].'/'.$dt[6].')<br>';
} while($a1 > $u);


//----------------------- Правильный пост. вывод для тем --------------------------------//
$lines=file("../local/dataforum/topic$fid.dat");
$a=count($lines);
$ba=ceil($a/$config_forumtem);
$ba2=floor($a/$config_forumtem)*$config_forumtem;
echo '<br>';
	

echo'<hr><b>Страницы:</b>';
$asd=$page-($config_forumtem*2);
$asd2=$page+($config_forumtem*3);

if($asd<$a && $asd>0){echo ' <a href="forum.php?fid='.$fid.'&amp;page=0&amp;'.SID.'">1</a> ... ';}

for($i=$asd; $i<$asd2;)
{
if($i<$a && $i>=0){
$ii=floor(1+$i/$config_forumtem);

if ($page==$i) {
echo ' <b>'.$ii.'</b>';
               }
                else {
echo ' <a href="forum.php?fid='.$fid.'&amp;page='.$i.'&amp;'.SID.'">'.$ii.'</a>';
                     }}


$i=$i+$config_forumtem;}
if($asd2<$a){echo ' ... <a href="forum.php?fid='.$fid.'&amp;page='.$ba2.'&amp;'.SID.'">'.$ba.'</a>';}

}else{echo '<br>';}
}


//---------------------------- Редактирование  и Добавление Темы --------------------------------//
if (isset($_GET['rd'])) { 
if ($_GET['rd'] !="")  { 
$rd=$_GET['rd']; 

$file=file("../local/dataforum/topic$fid.dat");
$i=0;
while (isset($file[$i])) 
   { $xxx = explode("|", $file[$i]);
      if ($xxx[7]==$rd ) 
         { $dt = $xxx;} 
	  $i++;
	  unset($xxx);
	}

echo '<hr>Редактирование Темы<br><b>Тема:</b><br>';
echo '<form action="forum.php?fid='.$fid.'&amp;event=rdtema&amp;'.SID.'" method="post">';
echo '<input type="text" name="zag" value="'.$dt[3].'" />';
echo '<input type="hidden" name="rd" value="'.$rd.'" />';
echo '<input type="hidden" name="name" value="'.$dt[0].'" />';
echo '<input type="hidden" name="email" value="'.$dt[2].'" />';
echo '<input type="hidden" name="msg" value="'.$dt[4].'" />';
echo '<input type="hidden" name="datem" value="'.$dt[5].'" />';
echo '<input type="hidden" name="timem" value="'.$dt[6].'" />';
echo '<input type="hidden" name="id" value="'.$dt[7].'" />';
echo '<input type="hidden" name="timetk" value="'.$dt[9].'" /><br>';
echo '<input type="submit" value="Изменить" /></form>';

}}else  {
	
//--------------------- Форма добавления новой темы ----------------------//
	
if($newtema==add){
echo '<hr>Добавление темы<br>';
echo '<form action="forum.php?event=addtopic&amp;fid='.$fid.'&amp;'.SID.'" method="post">';

echo '<b>Заголовок темы:</b><br>';
echo '<input type="text" name="zag" maxlength="30" /><br>';
echo '<b>Сообщение:</b><br>';
echo '<textarea cols="25" rows="3" name="msg"></textarea><br>';
echo '<input type="hidden" name="name" value="'.$log.'" />';
echo '<br><input type="submit" value="Добавить" /></form><br>';
}

}}}else{



if ($event=="topic"){
	
if ($id == "") { echo ' ошибка :-(';  include_once"../themes/$config_themes/foot.php"; exit;}
if ($fid == "") { echo ' ошибка :-(';   include_once"../themes/$config_themes/foot.php";  exit;}


$mainlines = file("../local/dataforum/mainforum.dat"); 
$i=count($mainlines);

do {$i--; $rdt = explode("|", $mainlines[$i]);
$dt = explode("|", $mainlines[$i]);
if ($dt[0]==$fid) {$i=0;}

} while($i > "1");
$frname=$dt[1];



if (!is_file("../local/dataforum/$id.dat")) {  
//Тема удалена модератором! 
header ("Location: forum.php?fid=$fid&isset=delthemes&".SID);
exit;
}else { 
$lines = file("../local/dataforum/$id.dat");
if (count($lines)>0) {

$lines = file("../local/dataforum/$id.dat");
$i=count($lines);
$n="0";



if (!isset($page)){$page="0";}



if ($page>=$i) {$page=(round($i/$config_forumpost))*10;} 
if ($i<=$config_forumpost) {$page="0";}
if ($page>=1) {$a1=$page;} else {$a1=0;}
if (($a1+$config_forumpost)<$i) {$u=$a1+$config_forumpost;} else {$u=$i;}

do {$dt = explode("|", $lines[$a1]);

$dt[4]=eregi_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/%]*(\\?[[:alnum:]?+&_=/%]*)?)?)", "<a href='\\1'>\\1</a>", $dt[4]);

$a1++;


if (!isset($m1)) {

$filem=file("../local/dataforum/$id.dat");
$fg=count($filem)-1;
$dg=explode("|", $filem[$fg]);
$forums = file("../local/dataforum/mainforum.dat");

##########################################################



$iz=count($forums);
$az1="-1"; $ux=$iz-1;
do {$az1++;
$yy=explode("|", $forums[$az1]);
if ($yy[0]==$fid){$raz=$yy[1];}} while($az1 < $ux);

#############################################################

echo '<a href="forum.php?'.SID.'">'.$fname.'</a> | ';
echo '<a href="forum.php?fid='.$fid.'&amp;'.SID.'"><b>'.$raz.'</b></a> | <b>'.$dg[3].'</b><br>';
$m1='1'; 


###############################

$lines2=file("../local/dataforum/$id.dat");

$lines2=array_reverse($lines2);
$ddd=explode("|", $lines2[0]);

if ($ddd[9]!="CLOSED")
    {echo '<div class=a><img src="../images/img/close.gif" alt=""> ';
     echo '<b><a href="forum.php?event=zakr&amp;zag='.$dt[3].'&amp;fid='.$fid.'&amp;id='.$id.'&amp;'.SID.'">Закрыть тему!</a></b>';
	 }
else{echo '<b><font color="red">Тема закрыта</font></b><br>';
     echo '<div class=a><img src="../images/img/open.gif" alt=""> ';
     echo '<b><a href="forum.php?event=otkr&amp;fid='.$fid.'&amp;id='.$id.'&amp;'.SID.'">Открыть тему!</a></b>';
	 }
if (ereg ("ON", $ddd[10]))
    {echo ' <img src="../images/img/close.gif" alt=""> ';
     echo '<b><a href="forum.php?event=unlocked&amp;zag='.$dt[3].'&amp;fid='.$fid.'&amp;id='.$id.'&amp;'.SID.'">Открепить тему!</a></b></div>';
	 }
else{echo ' <img src="../images/img/open.gif" alt=""> ';
     echo '<b><a href="forum.php?event=locked&amp;fid='.$fid.'&amp;id='.$id.'&amp;'.SID.'">Закрепить тему!</a></b></div>';
	 }
	}
echo '<hr>';
################################## 

echo '<div class=b>'.$a1.'. '; 
echo '<b><a href="../pages/anketa.php?uz='.$dt[0].'">'.$dt[0].'</a></b> '; 
echo '('.$dt[5].'/'.$dt[6].')';
echo '<br>|<a href="forum.php?event=topic&amp;fid='.$fid.'&amp;id='.$id.'&amp;topicrd='.$a1.'&amp;page='.$page.'&amp;'.SID.'">edit</a>';
echo '|<a href="forum.php?event=topic&amp;fid='.$fid.'&amp;id='.$id.'&amp;topicxd='.$a1.'&amp;'.SID.'">del</a>|</div>';
echo $dt[4].'<br>';

} while($a1 < $u);


//----------------------- Постраничный вывод внутри темы -----------------//
$lines = file("../local/dataforum/$id.dat");
$a=count($lines);
$tots=$a-1;
$ba=ceil($tots/$config_forumpost);
$ba2=floor($tots/$config_forumpost)*$config_forumpost;

echo '<br><hr><b>Страницы:</b>';
$asd=$page-($config_forumpost*3);
$asd2=$page+($config_forumpost*4);

if($asd<$tots && $asd>0){echo ' <a href="forum.php?event=topic&amp;fid='.$fid.'&amp;id='.$id.'&amp;page=0&amp;'.SID.'">1</a> ... ';}

for($i=$asd; $i<$asd2;)
{
if($i<$tots && $i>=0){
$ii=floor(1+$i/$config_forumpost);

if ($page==$i) {
echo ' <b>'.$ii.'</b>';
               }
                else {
echo ' <a href="forum.php?event=topic&amp;fid='.$fid.'&amp;id='.$id.'&amp;page='.$i.'&amp;'.SID.'">'.$ii.'</a>';
                     }}


$i=$i+$config_forumpost;}
if($asd2<$tots){echo ' ... <a href="forum.php?event=topic&amp;fid='.$fid.'&amp;id='.$id.'&amp;page='.$ba2.'&amp;'.SID.'">'.$ba.'</a>';}
///////////////////////////////////////////////////


if (isset($topicrd)) {
$topicrd=$topicrd-1;
$lines = file("../local/dataforum/$id.dat");
$dt = explode("|", $lines[$topicrd]);  

$dt[4]=str_replace('<img src="../images/smiles/',':',$dt[4]);
$dt[4]=str_replace('.gif" alt="">','',$dt[4]);
$dt[4]=str_replace ("<br>","\r\n",$dt[4]);
$dt[4]=str_replace ("<br />","\r\n",$dt[4]);
$dt[10]=ereg_replace("\r\n","",$dt[10]);
echo '<hr><form action="forum.php?event=addanswer&amp;fid='.$fid.'&amp;topicrd='.$topicrd.'&amp;page='.$page.'&amp;'.SID.'" method="post">';
echo 'Редактирование сообщения<br>';
echo '<br><b>Сообщение:</b><br>';
echo '<textarea name="msg" cols="25" rows="3">'.$dt[4].'</textarea>';
echo '<input type="hidden" name="name" value="'.$dt[0].'" />';
echo '<input type="hidden" name="id" value="'.$dt[7].'" />';
echo '<input type="hidden" name="zag" value="'.$dt[3].'" />';
echo '<input type="hidden" name="fdate" value="'.$dt[5].'" />';
echo '<input type="hidden" name="ftime" value="'.$dt[6].'" />';
echo '<input type="hidden" name="fnomer" value="'.$topicrd.'" />';
echo '<input type="hidden" name="timetk" value="'.$dt[9].'" />';
echo '<input type="hidden" name="locked" value="'.$dt[10].'" />';
echo '<input type="hidden" name="page" value="'.$page.'" /><br><br>';
echo '<input type="submit" value="Изменить" /></form>';



} else  {

$dt[10]=ereg_replace("\r\n","",$dt[10]);
echo '<hr><b>Сообщение:</b><br>';
echo '<form action="forum.php?event=addanswer&amp;fid='.$fid.'&amp;'.SID.'" method="post">';
echo '<input type="hidden" name="id" value="'.$dt[7].'" />';
echo '<input type="hidden" name="page" value="'.$page.'" />';
echo '<input type="hidden" name="zag" value="'.$dt[3].'" />';
echo '<input type="hidden" name="locked" value="'.$dt[10].'" />';
echo '<input type="hidden" name="name" value="'.$log.'" />';
echo '<textarea name="msg" cols="25" rows="3"></textarea><br><br>';
echo '<input type="submit" value="Отправить" /></form>';
}

}}}} 

echo'<br><br><img src="../images/img/panel.gif" alt=""> <a href="index.php?'.SID.'">В админку</a><br>';
echo'<img src="../images/img/homepage.gif" alt=""> <a href="../index.php?'.SID.'">На главную</a><br>';

} else {header ("Location: ../index.php?error&".SID);}
} else {header ("Location: ../index.php?error&".SID);}

include_once"../themes/$config_themes/foot.php";
?>