<?php
require_once ( "../includes/start.php" );
require_once ( "../includes/functions.php" );
require_once ( "../includes/header.php" );
include_once ( "../themes/" . $config['themes'] . "/index.php" );
if ( is_user() )
$config_liblist = $udata[23];
else
$config_liblist = 10;
///////////////////////////////////////////
if ( isset( $_GET['num'] ) )
$num = ( int )( $_GET['num'] );
if ( isset( $_GET['start'] ) )
$start = ( int )$_GET['start'];
else
$start = 0;
if ( isset( $_GET['action'] ) )
$action = check( $_GET['action'] );
if ( isset( $_GET['did'] ) )
$did = check( $_GET['did'] );
else
$did = '';
if ( isset( $_GET['fid'] ) )
$fid = check( $_GET['fid'] );
else
$fid = '';
if ( isset( $_GET['sort'] ) )
$sort = check( $_GET['sort'] );
else
$sort = 'name';
if ( isset( $_GET['list'] ) )
$list = ( int )$_GET['list'];
else
$list = 1;
$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 '<img src="../images/img/partners.gif" alt=""> <b>Библиотека</b><br><br>';
$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 '<img src="../images/img/opendir.gif" alt=""> <b>' . $lib_name . '</b><br><br>';
sort( $a );
$b = $a;
$total = count( $a );
if ( $total > 0 )
{
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_liblist );
if ( $stranicy_lib == 0 )
{
$stranicy_lib = 1;
}
$filtime = filemtime( "$did/$b[$i]" );
$filtime = $filtime + ( 3600 * 24 * 5 );
echo '<div class=b>';
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( DATADIR . "datalib/$b[$i].dat" );
$u = explode( "|", $te[0] );
echo '</div>Прочитали: ' . ( int )$u[0];
$tit = round( $u[2] / $u[1] / 2, 1 );
echo '<br>Оценка: ' . $tit . '/<b>' . ( int )$u[1] . '</b>';
$filekomm = file( DATADIR . "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 . ')<br>';
}
}
else
{
echo '<br><img src="../images/img/reload.gif" alt=""> <b>В данной категории нет статей!</b><br>';
}
echo '<hr>';
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><hr>Страницы:';
$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 '<br><br>Всего статей: ' . ( int )$total . '<br>';
}
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( DATADIR . "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( DATADIR . "datalib/$fid.dat" );
$fp = fopen( DATADIR . "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( DATADIR . "datalib/$fid.dat", 0777 );
}
header( "location: lib.php?action=ob&did=$did&fid=$fid&" . SID );
}
else
{
show_error( 'Ошибка, невозможно найти требуемую вам статью ' . $did . '/' . $fid );
}
}
else
{
show_error( 'Ошибка, отсутствуют важные данные!' );
}
echo '<br><img src="../images/img/back.gif" alt=""> <a href="?action=ob&did=' . $did .
'&fid=' . $fid . '&' . SID . '">Вернуться</a>';
}
##########################################################################
## Запись и вывод рейтинга
##########################################################################
if ( $action == "vote" )
{
show_title( 'partners.gif', 'Оценка файла' );
if ( is_user() )
{
if ( $_SESSION[votus] != $fid )
{
$_SESSION['votus'] = $fid;
if ( file( DATADIR . "datalib/$fid.dat" ) )
{
if ( file( "$did/$fid" ) )
{
$ocenka=(int)$_POST['ocenka'];
if ( $ocenka != "" )
{
$f = file( DATADIR . "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( DATADIR . "datalib/$fid.dat" );
$fp = fopen( DATADIR . "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( DATADIR . "datalib/$fid.dat", 0777 );
$ocenka2 = round( $ocenka / 2 );
echo '<br>Спасибо ваша оценка: <b>"' . ( int )$ocenka2 . '"</b> принята<br>';
$te = file( DATADIR . "datalib/$fid.dat" );
$u = explode( "|", $te[0] );
$tit = round( $u[2] / 2 / $u[1], 1 );
echo 'Всего оценивало: ' . ( int )$u[1] . '<br>';
echo 'Средняя оценка: ' . $tit . '<br>';
}
else
{
show_error( 'Ошибка, вы не указали оценку' );
}
}
else
{
show_error( 'Ошибка, невозможно открыть требуемую вам статью' );
}
}
else
{
show_error( 'Вы не можете оценивать т.к. никто еще не читал статью' );
}
}
else
{
show_error( 'Вы уже оценили эту статью!' );
}
}
else
{
show_login( 'Вы не авторизованы' );
}
echo '<br><img src="../images/img/back.gif" alt=""> <a href="lib.php?action=ob&did=' .
$did . '&fid=' . $fid . '&' . SID . '">Вернуться</a>';
}
##########################################################################
## Вывод камментов
##########################################################################
if ( $action == "komm" )
{
$st_name = file( "$did/$fid" );
echo '<img src="../images/img/messages.gif" alt=""> <b>Комментарии (' . trim( $st_name[0] ) .
')</b><br><br>';
if ( is_user() )
{
echo '<form action="lib.php?action=addkomm&fid=' . $fid . '&did=' . $did . '&' .
SID . '" method="post">';
echo '<b>Сообщение:</b><br>';
echo '<textarea cols="25" rows="3" name="msg"></textarea><br>';
echo '<input type="submit" value="Написать" /></form><hr>';
}
else
{
show_login( 'Вы не авторизованы' );
}
$file = file( DATADIR . "datalib/$fid.dat" );
$file = array_reverse( $file );
$total = count( $file ) - 1;
if ( $total < 1 )
{
echo '<b>Комментариев еще нет!</b><br>';
}
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++ )
{
$data = explode( "|", $file[$i] );
$num = $total - $i;
//-------------------------------------------------------------------------------------//
$ava = file( DATADIR . "/profil/$data[3].prof" );
$avv = explode( ":||:", $ava[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] . '&' . 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 ( is_admin( array( 101, 102, 103, 105 ) ) )
{
echo ' <a href="lib.php?action=del&did=' . $did . '&fid=' . $fid . '&num=' . $num .
'&start=' . $start . '&' . SID . '"><font color="#FF0000">[Del]</font></a>';
}
echo '</div><div>' . bb_code( $data[0] ) . '</div>';
}
echo '<hr>';
if ( $start != 0 )
{
echo '<a href="lib.php?action=komm&did=' . $did . '&fid=' . $fid . '&start=' . ( $start -
$config_liblist ) . '&' . SID . '"><-Назад</a>';
}
else
{
echo '<-Назад';
}
echo ' | ';
if ( $total > $start + $config_liblist )
{
echo ' <a href="lib.php?action=komm&did=' . $did . '&fid=' . $fid . '&start=' . ( $start +
$config_liblist ) . '&' . SID . '">Далее-></a>';
}
else
{
echo 'Далее->';
}
if ( $total > 0 )
{
$ba = ceil( $total / $config_liblist );
$ba2 = $ba * $config_liblist - $config_liblist;
echo '<br><hr>Страницы:';
$asd = $start - ( $config_liblist * 3 );
$asd2 = $start + ( $config_liblist * 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_liblist );
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_liblist;
}
if ( $asd2 < $total )
{
echo ' ... <a href="lib.php?action=komm&did=' . $did . '&fid=' . $fid .
'&start=' . $ba2 . '&' . SID . '">' . $ba . '</a>';
}
}
echo '<br><br><img src="../images/img/back.gif" alt=""> <a href="lib.php?action=ob&did=' .
$did . '&fid=' . $fid . '&' . SID . '">К описанию</a>';
}
##########################################################################
## Запись комментариев
##########################################################################
if ( $action == "addkomm" )
{
show_title( 'partners.gif', 'Добавление комментариев' );
if ( isset( $_POST['msg'] ) )
$msg = check( $_POST['msg'] );
if ( is_user() )
{
if ( strlen( utf_to_win( trim( $msg ) ) ) > 5 && strlen( utf_to_win( $msg ) ) < 1000 )
{
if ( file( DATADIR . "datalib/$fid.dat" ) )
{
//--------------------- Новый антифлуд -----------------------------//
if ( $con_data[29] > 0 )
{
if ( flooder( $ip, $php_self ) == true )
{
header( "Location: lib.php?action=komm&did=$did&fid=$fid&isset=antiflood&" . SID );
exit;
}
write_files( DATADIR . "flood.dat", "$sitetime|$ip|$php_self|\r\n" );
}
//--------------------- Карантин -----------------------------//
if ( $con_data[3] > 0 )
{
if ( $udata[6] + $con_data[3] > $sitetime )
{
header( "Location: down.php?action=komm&did=$did&fid=$fid&isset=karantin&" . SID );
exit;
}
}
$msg = wordwrap( $msg, 100, ' ', 1 );
$msg = substr( $msg, 0, 1000 );
$msg = antimat( $msg );
$msg = smiles( $msg );
$file = file( DATADIR . "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 );
write_files( DATADIR . "datalib/$fid.dat", "$text\r\n", 0, 0777 );
/////////////////////////////////////
$f = file( DATADIR . "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] . '|';
write_files( DATADIR . "local.dat", $t );
///////////////////////////
$file = file( DATADIR . "datalib/$fid.dat" );
$i = count( $file );
if ( $i >= 6 )
{
write_files( DATADIR . "datalib/$fid.dat", implode( "", $file ), 1, 0777 );
}
change_profil( $log, array( 14 => $ip, 33 => $udata[33] + 1, 36 => $udata[36] + 1, 41 => $udata[41] +
1 ) );
header( "location: lib.php?action=komm&did=$did&fid=$fid&isset=addkomm&" . SID );
exit;
}
else
{
show_error( 'Вы не можете комментировать т.к. никто еще не читал статью' );
}
}
else
{
show_error( 'Вы не написали комментарий или он слишком короткий' );
}
}
else
{
show_login( 'Вы не авторизованы, чтобы добавить комментарий, необходимо' );
}
echo '<br><br><img src="../images/img/back.gif" alt=""> <a href="lib.php?action=komm&did=' .
$did . '&fid=' . $fid . '&' . SID . '">Вернуться</a><br>';
echo '<img src="../images/img/reload.gif" alt=""> <a href="lib.php?action=ob&did=' . $did .
'&fid=' . $fid . '&' . SID . '">К описанию</a>';
}
##########################################################################
## Описание загрузки
##########################################################################
if ( $action == "ob" )
{
if ( !empty( $did ) && !empty( $fid ) )
{
$opis = file( "$did/$fid" );
$total = count( $opis );
echo '<img src="../images/img/down.gif" alt=""> <b>' . trim( $opis[0] ) . '</b><br><br>';
if ( $start < 1 || $start > $total )
{
$start = 1;
}
if ( $total < $start + $config_liblist )
{
$end = $total;
}
else
{
$end = $start + $config_liblist;
}
for ( $i = $start; $i < $end; $i++ )
{
$al .= $opis[$i] . '<br>';
}
echo bb_code( $al );
echo '<hr>';
if ( $start != 1 )
{
echo '<a href="lib.php?start=' . ( $start - $config_liblist ) . '&action=ob&did=' . $did .
'&fid=' . $fid . '&' . SID . '"><-Назад </a>';
}
else
{
echo '<-Назад';
}
echo ' | ';
if ( $total > $start + $config_liblist )
{
echo ' <a href="lib.php?start=' . ( $start + $config_liblist ) . '&action=ob&did=' . $did .
'&fid=' . $fid . '&' . SID . '">Далее-></a>';
}
else
{
echo 'Далее->';
}
if ( $total > 0 )
{
$ba = ceil( $total / $config_liblist );
$ba2 = $ba * $config_liblist - $config_liblist;
echo '<br><hr>Страницы:';
$asd = $start - ( $config_liblist * 4 );
$asd2 = $start + ( $config_liblist * 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_liblist );
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_liblist;
}
if ( $asd2 < $total )
{
echo ' ... <a href="lib.php?start=' . $ba2 . '&action=ob&did=' . $did .
'&fid=' . $fid . '&' . SID . '">' . $ba . '</a>';
}
}
echo '<hr><br>';
$filekomm = file( DATADIR . "datalib/$fid.dat" );
$u = explode( "|", $filekomm[0] );
$totalkomm = count( $filekomm ) - 1;
if ( $u[5] != "" )
{
echo '<img src="../images/img/chel.gif" alt=""> Добавил: <b><a href="../pages/anketa.php?uz=' .
$u[5] . '&' . SID . '">' . nickname( $u[5] ) . '</a></b><br>';
}
echo '<img src="../images/img/files.gif" alt=""> <b><a href="lib.php?action=komm&did=' .
$did . '&fid=' . $fid . '&' . SID . '">Комментарии</a> (' . ( int )$totalkomm .
')</b><br>';
echo '<img src="../images/img/search.gif" alt=""><b> Прочитали: ' . ( int )$u[0] .
'</b><br>';
if ( $u[3] != "" )
{
echo '<br>Последнее прочтение: ' . date_fixed( $u[3], 'j F Y / H:i' ) . '<br>';
}
$tit = round( $u[2] / $u[1] / 2, 1 );
echo '<br>Оценка: ' . raiting_vote( $tit ) . '<br>';
echo 'Всего оценок: <b>' . ( int )$u[1] . '</b><br>';
//--------------------------------Форма для оценок---------------------------------//
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><hr>';
}
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 '<br><img src="../images/img/back.gif" alt=""> <a href="lib.php?did=' . $did .
'&' . SID . '">Вернуться</a>';
}
##########################################################################
## Удаление комментариев
##########################################################################
if ( $action == "del" )
{
if ( is_admin( array( 101, 102, 103, 105 ) ) )
{
if ( $num != "" && $did != "" && $fid != "" )
{
$file = file( DATADIR . "datalib/$fid.dat" );
$fp = fopen( DATADIR . "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
{
show_error( 'Ошибка, недопустимое название папки или файла!' );
}
echo '<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>';
include_once ( "../themes/" . $config['themes'] . "/foot.php" );
?>