<?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['did'])){$did = check($_GET['did']);} else {$did='';}
if (isset($_GET['fid'])){$fid = check($_GET['fid']);} else {$fid='';}
$dates=date("d.m.y",$sitetime);
$times=date("H:i",$sitetime);
if(!eregi("[^a-z0-9_@+-]",$did) && (!eregi("[^a-z0-9_@!+.-]",$fid))){
##########################################################################
## Основная
##########################################################################
if(!isset($action)){
if(!empty($did)){
echo '<div class=tp <b>Библиотека</b></div>';
$a = array();
$dir = opendir ($did);
while ($file = readdir ($dir)) {
if (ereg(".txt$", $file)) {
$a[]=$file;
}}
closedir ($dir);
if(file_exists("$did/name.dat")){
$lib_name=file_get_contents("$did/name.dat");
}else{$lib_name=$did;}
echo'<div class=tpanel> <b>'.$lib_name.'</b></div>';
sort($a);
$b=$a;
$total = count($a);
if($total>0){
$start = (int)$_GET['start'];
if($start < 0 || $start > $total){$start = 0;}
if ($total < $start + $config_liblist){ $end = $total; }
else {$end = $start + $config_liblist; }
for ($i = $start; $i < $end; $i++){
$siz= file("$did/$b[$i]");
$count_lib= count($siz);
$stranicy_lib=ceil($count_lib/$config_libpost);
if($stranicy_lib==0){$stranicy_lib=1;}
$filtime=filemtime ("$did/$b[$i]");
$filtime=$filtime+(3600*24*5);
echo '<div class=forum><div class=r0>';
if($filtime>=$sitetime){echo'<img src="../images/img/new.gif" alt=""> ';}else{
echo'<img src="../images/img/files.gif" alt=""> ';}
$st_name=file("$did/$a[$i]");
echo'<b><a href="lib.php?action=count&did='.$did.'&fid='.$b[$i].'&'.SID.'">'.$st_name[0].'</a></b> ('.$stranicy_lib.' стр.)<br>';
$te = file("../local/datalib/$b[$i].dat");
$u = explode("|",$te[0]);
echo 'Прочитали: '.(int)$u[0];
$tit=round($u[2]/$u[1]/2,1);
echo '<br>Оценка: '.$tit.'/<b>'.(int)$u[1].'</b>';
$filekomm = file("../local/datalib/$b[$i].dat");
$totalkomm = count($filekomm)-1;
echo'<br><a href="lib.php?action=komm&did='.$did.'&fid='.$b[$i].'&'.SID.'">Комментарии</a> ('.(int)$totalkomm.')</div></div>';
}
}else{echo '<br><img src="../images/img/reload.gif" alt=""> <b>В данной категории нет статей!</b></div></div>';}
echo'<div class=body>';
if ($start != 0) {echo '<a href="lib.php?start='.($start - $config_liblist).'&did='.$did.'&'.SID.'"><пред. </a>';}else{echo'<пред.';}
echo' | ';
if ($total > $start + $config_liblist) {echo ' <a href="lib.php?start='.($start + $config_liblist).'&did='.$did.'&'.SID.'">след.></a>';}else{echo'след.>';}
if($total>0){
$ba=ceil($total/$config_liblist);
$ba2=$ba*$config_liblist-$config_liblist;
echo '<br>Стр.:';
$asd=$start-($config_liblist*3);
$asd2=$start+($config_liblist*4);
if($asd<$total && $asd>0){echo ' <a href="lib.php?start=0&did='.$did.'&'.SID.'">1</a> ... ';}
for($i=$asd; $i<$asd2;)
{
if($i<$total && $i>=0){
$ii=floor(1+$i/$config_liblist);
if ($start==$i) {
echo ' <b>'.$ii.'</b>';
}
else {
echo ' <a href="lib.php?start='.$i.'&did='.$did.'&'.SID.'">'.$ii.'</a>';
}}
$i=$i+$config_liblist;}
if($asd2<$total){echo ' ... <a href="lib.php?start='.$ba2.'&did='.$did.'&'.SID.'">'.$ba.'</a>';}
}
echo '</div><div class="panel">Всего статей: '.(int)$total.'</div>';
}else{header ("Location: index.php?".SID); exit;}
}
##########################################################################
## Cчетчик
##########################################################################
if($action=="count"){
if($did!="" && $fid!=""){
if(file("$did/$fid")){
if($_SESSION['library']!="$did/$fid"){
$_SESSION['library']="$did/$fid";
$f = file("../local/datalib/$fid.dat");
$u = explode("|",$f[0]);
$u[0]++;
$t=$u[0].'|'.$u[1].'|'.$u[2].'|'.$sitetime.'|'.$did.'|'.$u[5].'|';
$t=preg_replace ("|[\r\n]+|si","",$t);
$rd=0;
$file=file("../local/datalib/$fid.dat");
$fp=fopen("../local/datalib/$fid.dat","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
for ($i=0;$i< sizeof($file);$i++) {if ($rd!=$i) {fputs($fp,$file[$i]);} else {fputs($fp,"$t\r\n");}}
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod ($fp, 0777);
chmod ("../local/datalib/$fid.dat", 0777);
}
header("location: lib.php?action=ob&did=$did&fid=$fid&".SID);
}else{echo '<br>Ошибка, невозможно найти требуемую вам статью '.$did.'/'.$fid.'<br>';}
}else{echo '<br>Ошибка, отсутствуют важные данные!<br>';}
echo '- <a href="?action=ob&did='.$did.'&fid='.$fid.'&'.SID.'">Вернуться</a>';
}
##########################################################################
## Запись и вывод рейтинга
##########################################################################
if($action=="vote"){
echo '<div class=tp> <b>Оценка файла </b></div>';
if ($provlog==$_SESSION['log'] && $provpar==md5($_SESSION['par']) && $_SESSION['log']!="" && md5($_SESSION['par'])!="") {
if($_SESSION[votus]!=$fid){
$_SESSION['votus']=$fid;
if(file("../local/datalib/$fid.dat")){
if(file ("$did/$fid")){
if($ocenka!="" && ctype_digit($ocenka)){
$f = file("../local/datalib/$fid.dat");
$u = explode("|",$f[0]);
$u[1]++;
$golos=round($u[2]+$ocenka);
$t=$u[0].'|'.$u[1].'|'.$golos.'|'.$u[3].'|'.$u[4].'|'.$u[5].'|';;
$t=preg_replace ("|[\r\n]+|si","",$t);
$rd=0;
$file=file("../local/datalib/$fid.dat");
$fp=fopen("../local/datalib/$fid.dat","a+");
flock ($fp,LOCK_EX);
ftruncate ($fp,0);
for ($i=0;$i< sizeof($file);$i++) {if ($rd!=$i) {fputs($fp,$file[$i]);} else {fputs($fp,"$t\r\n");}}
fflush ($fp);
flock ($fp,LOCK_UN);
fclose($fp);
chmod ($fp, 0777);
chmod ("../local/datalib/$fid.dat", 0777);
$ocenka2=round($ocenka/2);
echo'<div class=body>Спасибо ваша оценка: <b>"'.(int)$ocenka2.'"</b> принята</div>';
$te = file("../local/datalib/$fid.dat");
$u = explode("|",$te[0]);
$tit=round($u[2]/2/$u[1],1);
echo '<div class=panel>Всего оценивало: '.(int)$u[1].'<br>';
echo 'Средняя оценка: '.$tit.'</div>';
} else { echo 'Ошибка, вы не указали оценку<br>';}
} else { echo 'Ошибка, невозможно открыть требуемую вам статью <br>';}
} else { echo 'Вы не можете оценивать т.к. никто еще не читал статью<br>';}
} else { echo 'Вы уже оценили эту статью!<br>'; }
}else{
echo'Вы не авторизованы,<br> для того, чтобы дать оценку необходимо <a href="../pages/vhod.php?'.SID.'"> авторизоваться</a><br> или сперва <a href="../pages/registration.php?'.SID.'"> зарегистрироваться</a><br>';
}
echo'- <a href="lib.php?action=ob&did='.$did.'&fid='.$fid.'&'.SID.'">Вернуться</a>';
}
##########################################################################
## Вывод камментов
##########################################################################
if($action=="komm"){
$st_name=file("$did/$fid");
echo'<div class=tp> <b>Комментарии ('.trim($st_name[0]).')</b></div>';
if ($provlog==$_SESSION['log'] && $provpar==md5($_SESSION['par']) && $_SESSION['log']!="" && md5($_SESSION['par'])!="") {
if($config_themes!=="wml"){
echo'<div class=body><form action="lib.php?action=addkomm&fid='.$fid.'&did='.$did.'&'.SID.'" method="post">';
echo'<b>Сообщение:</b><br>';
echo'<textarea cols="20" rows="2" 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="lib.php?action=addkomm&fid='.$fid.'&did='.$did.'&'.SID.'" method="post">';
echo'<postfield name="msg" value="$(msg)"/>';
echo'<postfield name="trans" value="$(trans)"/>';
echo'</go></anchor><br>--------------------<br>';
}
}else{
echo '<br>Вы не авторизованы, чтобы добавить сообщение необходимо<br>';
echo '<b><a href="../pages/vhod.php?'.SID.'">Авторизоваться</a></b> или в начале <b><a href="../pages/registration.php?'.SID.'">Зарегистрироваться</a></b><br><br>';
}
$file = file("../local/datalib/$fid.dat");
$file = array_reverse($file);
$total = count($file)-1;
if($total<1){echo '<b>Комментариев еще нет!</b><br>';}
$start = (int)$_GET['start'];
if($start < 0 || $start > $total){$start = 0;}
if ($total < $start + $config_postdown){ $end = $total; }
else {$end = $start + $config_postdown;}
for ($i = $start; $i < $end; $i++){
$data = explode("|",$file[$i]);
$num=$total-$i;
//-------------------------------------------------------------------------------------//
$ava = file("../local/profil/$data[3].prof");
$avv = explode(":||:",$ava[0]);
echo '<div class=forum><div class=r0>';
if(!empty($udata[45])){
if($avv[43]!="" && $avv[43]!="noavatar.gif"){
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'<img src="../images/img/edit.gif" alt=""> <b><a href="../pages/anketa.php?uz='.$data[3].'&'.SID.'"> '.nickname($data[3]).' </a></b> '.user_online($data[3]);}
echo '<small> ('.$data[1].' / '.$data[2].')</small>';
//------------------------------Удаление для модеров---------------------------//
if($provpar==md5($_SESSION['par']) && $provlog==$_SESSION['log']) {
if ($dostup==101 || $dostup==102 || $dostup==103 || $dostup==105){
echo ' <a href="lib.php?action=del&did='.$did.'&fid='.$fid.'&num='.$num.'&start='.$start.'&'.SID.'"><font color="#FF0000">[Уд]</font></a>';
}}
echo '<br>'.bb_code($data[0]).'</div></div>';
}
echo'<div class=body>';
if ($start != 0) {echo '<a href="lib.php?action=komm&did='.$did.'&fid='.$fid.'&start='.($start - $config_postdown).'&'.SID.'"><пред.</a>';}else{echo'<пред.';}
echo ' | ';
if ($total > $start + $config_postdown) {echo ' <a href="lib.php?action=komm&did='.$did.'&fid='.$fid.'&start='.($start + $config_postdown).'&'.SID.'">след.></a>';}else{echo'след.>';}
if($total>0){
$ba=ceil($total/$config_postdown);
$ba2=$ba*$config_postdown-$config_postdown;
echo '<br>Стр.:';
$asd=$start-($config_postdown*3);
$asd2=$start+($config_postdown*4);
if($asd<$total && $asd>0){echo ' <a href="lib.php?action=komm&did='.$did.'&fid='.$fid.'&start=0&'.SID.'">1</a> ... ';}
for($i=$asd; $i<$asd2;)
{
if($i<$total && $i>=0){
$ii=floor(1+$i/$config_postdown);
if ($start==$i) {
echo ' <b>'.$ii.'</b>';
}
else {
echo ' <a href="lib.php?action=komm&did='.$did.'&fid='.$fid.'&start='.$i.'&'.SID.'">'.$ii.'</a>';
}}
$i=$i+$config_postdown;}
if($asd2<$total){echo ' ... <a href="lib.php?action=komm&did='.$did.'&fid='.$fid.'&start='.$ba2.'&'.SID.'">'.$ba.'</a>';}
}
echo'<div class=btm>[<a href="lib.php?action=ob&did='.$did.'&fid='.$fid.'&'.SID.'">К описанию</a>]';
}
##########################################################################
## Запись комментариев
##########################################################################
if($action=="addkomm"){
echo'<img src="../images/img/partners.gif" alt=""> <b>Добавление комментария</b><br><br>';
if (isset ($_GET['msg'])){header ("Location: lib.php?action=komm&did=$did&fid=$fid&isset=posts&".SID); exit;}
if ($provlog==$_SESSION['log'] && $provpar==md5($_SESSION['par']) && $_SESSION['log']!="" && md5($_SESSION['par'])!=""){
if(strlen(utf_to_win(trim($msg)))>5 && strlen(utf_to_win($msg))<1000){
if(file("../local/datalib/$fid.dat")){
//--------------------- Новый антифлуд -----------------------------//
if($config_floodstime > 0){
if(flooder($ip, $php_self) == TRUE ){header ("Location: lib.php?action=komm&did=$did&fid=$fid&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: lib.php?action=komm&did=$did&fid=$fid&isset=karantin&".SID); exit;}
}
$msg=wordwrap($msg,100,' ',1);
$msg=substr($msg,0,1000);
$msg=check($msg);
if($trans=="y"){$msg=transliter($msg);}
$msg = antimat($msg);
$msg = smiles($msg);
$file = file("../local/datalib/$fid.dat");
$file = array_reverse($file);
$data1 = explode("|",$file[0]);
$me=round($data1[4]+1);
$text=$msg.'|'.$dates.'|'.$times.'|'.$log.'|'.$me.'|';
$text=preg_replace ("|[\r\n]+|si","",$text);
$fp=fopen("../local/datalib/$fid.dat","a+");
flock ($fp,LOCK_EX);
fputs($fp,"$text\r\n");
flock ($fp,LOCK_UN);
fclose($fp);
chmod($fp, 0777);
chmod("../local/datalib/$fid.dat", 0777);
/////////////////////////////////////
$f = file("../local/local.dat");
$u = explode("|",$f[0]);
$u[6]++;
$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/datalib/$fid.dat");
$i = count($file);
if ($i>=$config_maxpostdown) {
$fp=fopen("../local/datalib/$fid.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/datalib/$fid.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: lib.php?action=komm&did=$did&fid=$fid&isset=addkomm&".SID); exit;
}else{echo'<b>Вы не можете комментировать т.к. никто еще не читал статью</b><br>';}
}else{echo'<b>Вы не написали комментарий или он слишком короткий</b><br>'; }
}else{
echo '<br>Вы не авторизованы, чтобы добавить сообщение необходимо<br>';
echo '<b><a href="../pages/vhod.php?'.SID.'">Авторизоваться</a></b> или в начале <b><a href="../pages/registration.php?'.SID.'">Зарегистрироваться</a></b><br><br>';
}
echo'<div class=btm>[<a href="lib.php?action=komm&did='.$did.'&fid='.$fid.'&'.SID.'">Вернуться</a>]<br>';
echo'[<a href="lib.php?action=ob&did='.$did.'&fid='.$fid.'&'.SID.'">К описанию</a>]</div>';
}
##########################################################################
## Описание загрузки
##########################################################################
if($action=="ob"){
if(!empty($did) && !empty($fid)){
$opis = file("$did/$fid");
$total =count($opis);
echo '<div class=tp> <b>'.trim($opis[0]).'</b></div><div class=body>';
$start = (int)$_GET['start'];
if($start < 1 || $start > $total){$start = 1;}
if ($total < $start + $config_libpost){ $end = $total; }
else {$end = $start + $config_libpost; }
for ($i = $start; $i < $end; $i++){
$al.=$opis[$i].'';
}
echo bb_code($al);
echo'</div><div class=body>';
if ($start != 1) {echo '<a href="lib.php?start='.($start - $config_libpost).'&action=ob&did='.$did.'&fid='.$fid.'&'.SID.'"><пред. </a>';}else{echo'<пред.';}
echo' | ';
if ($total > $start + $config_libpost) {echo ' <a href="lib.php?start='.($start + $config_libpost).'&action=ob&did='.$did.'&fid='.$fid.'&'.SID.'">след.></a>';}else{echo'след.>';}
if($total>0){
$ba=ceil($total/$config_libpost);
$ba2=$ba*$config_libpost-$config_libpost;
echo '<br>Стр.:';
$asd=$start-($config_libpost*4);
$asd2=$start+($config_libpost*5);
if($asd<$total && $asd>0){echo ' <a href="lib.php?start=0&action=ob&did='.$did.'&fid='.$fid.'&'.SID.'">1</a> ... ';}
for($i=$asd; $i<$asd2;)
{
if($i<$total && $i>=0){
$ii=floor(1+$i/$config_libpost);
if ($start==$i) {
echo ' <b>('.$ii.')</b>';
}else {
echo ' <a href="lib.php?start='.$i.'&action=ob&did='.$did.'&fid='.$fid.'&'.SID.'">'.$ii.'</a>';
}}
$i=$i+$config_libpost;}
if($asd2<$total){echo ' ... <a href="lib.php?start='.$ba2.'&action=ob&did='.$did.'&fid='.$fid.'&'.SID.'">'.$ba.'</a>';}
}
echo'<div class=panel>';
$filekomm = file("../local/datalib/$fid.dat");
$u = explode("|",$filekomm[0]);
$totalkomm = count($filekomm)-1;
if($u[5]!=""){echo'- Добавил: <a href="../pages/anketa.php?uz='.$u[5].'&'.SID.'">'.nickname($u[5]).'</a><br>';}
echo'- <a href="lib.php?action=komm&did='.$did.'&fid='.$fid.'&'.SID.'">Комментарии</a> ('.(int)$totalkomm.')<br>';
echo'- Прочитали: '.(int)$u[0].'<br>';
if($u[3]!=""){echo'- Последнее прочтение: '.date_fixed($u[3],'j F Y / H:i').'<br>';}
$tit=round($u[2]/$u[1]/2,1);
echo 'Оценка: '.raiting_vote($tit).'<br>';
echo 'Всего оценок: <b>'.(int)$u[1].'</b>';
//--------------------------------Форма для оценок---------------------------------//
echo'<br>Оценить ';
if($config_themes!="wml"){
echo'<form action="lib.php?action=vote&fid='.$fid.'&did='.$did.'&'.SID.'" method="post" name="vote">';
echo'<select name="ocenka">';
echo'<option value="10">Отлично</option>';
echo'<option value="8">Хорошо</option>';
echo'<option value="6">Нормально</option>';
echo'<option value="4">Плохо</option>';
echo'<option value="2">Отстой</option>';
echo'</select>';
echo'<input type="submit" value="Oценить" /></form></div>';
}else{
echo'<br><select name="ocenka">';
echo'<option value="10">Отлично</option>';
echo'<option value="8">Хорошо</option>';
echo'<option value="6">Нормально</option>';
echo'<option value="4">Плохо</option>';
echo'<option value="2">Отстой</option>';
echo'</select><br>';
echo'<anchor>Oценить';
echo'<go href="lib.php?action=vote&fid='.$fid.'&did='.$did.'&'.SID.'" method="post">';
echo'<postfield name="ocenka" value="$(ocenka)"/>';
echo'</go></anchor>';
}
}else{header ("Location: index.php?".SID); exit;}
echo'<div class=btm>[<a href="lib.php?did='.$did.'&'.SID.'">Вернуться</a>]';
}
##########################################################################
## Удаление комментариев
##########################################################################
if($action=="del"){
if($provpar==md5($_SESSION['par']) && $provlog==$_SESSION['log']) {
if ($dostup==101 || $dostup==102 || $dostup==103 || $dostup==105){
if ($num!="" && $did!="" && $fid!=""){
$file=file("../local/datalib/$fid.dat");
$fp=fopen("../local/datalib/$fid.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: lib.php?action=komm&did=$did&fid=$fid&start=$start&isset=delkomm&".SID); exit;
}}}
header("location: lib.php?action=komm&did=$did&fid=$fid&start=$start&".SID); exit;
}
}else{echo'<br><b>Ошибка, недопустимое название папки или файла!</b><br>';}
echo'<br>[<a href="index.php?'.SID.'">К категориям</a>]<br>';
echo'[<a href="../index.php?'.SID.'">На главную</a>]';
include_once"../themes/$config_themes/foot.php";
?>