Код файла -
define('_IN_JOHNCMS', 1);
$realtime=time();
$headmod = 'lib';
$textl = 'Библиотека';
require_once ("../incfiles/core.php");
// Ограничиваем доступ к Библиотеке
$error = '';
if (!$set['mod_lib'] && $rights < 7)
$error = 'Библиотека закрыта';
elseif ($set['mod_lib'] == 1 && !$user_id)
$error = 'Доступ в Библиотеку открыт только <a href="../login.php">авторизованным</a> посетителям';
if ($error) {
require_once ("../incfiles/head.php");
echo '<div class="rmenu"><p>' . $error . '</p></div>';
require_once ("../incfiles/end.php");
exit; }
// Заголовки библиотеки
if (empty ($id)) {
$textl = 'Библиотека';
}else{
$req = mysql_query("SELECT * FROM `lib` WHERE `id`= '" . $id . "' LIMIT 1;");
$zag = mysql_fetch_array($req);
$hdr = $zag['type'] == 'bk' ? $zag['name'] : $zag['text'];
$hdr = htmlentities(mb_substr($hdr, 0, 100), ENT_QUOTES, 'UTF-8');
$textl = mb_strlen($res['text']) > 100 ? $hdr . '...' : $hdr; }
require_once ("../incfiles/head.php");
$do = array('my', 'java', 'symb', 'search', 'new', 'moder', 'addkomm', 'komm', 'del', 'edit', 'load', 'write', 'mkcat', 'topread', 'move', 'sdvig');
if (in_array($act, $do) ) {
require_once ($act . '.php');
}else{
if (!$set['mod_lib'])
echo '<p><div class="red"><b>Библиотека закрыта!</b></div></p>';
if (!$id) {
echo '<div class="phdr"><b>Библиотека</b></div>';
if ($rights == 5 || $rights >= 6) {
// Считаем число статей, ожидающих модерацию
$req = mysql_query("SELECT COUNT(*) FROM `lib` WHERE `type` = 'bk' AND `moder` = '0'");
$res = mysql_result($req, 0);
if ($res > 0)
echo '<div class="rmenu">Модерации ожидают [<a href="index.php?act=moder">' . $res . '</a> статей]</div>'; }
// Сколько суток считать статьи новыми?
$old = $realtime - (3 * 24 * 3600);
// Считаем новое в библиотеке
$req = mysql_query("SELECT COUNT(*) FROM `lib` WHERE `time` > '" . $old . "' AND `type`='bk' AND `moder`='1'");
$res = mysql_result($req, 0);
echo '<div class="gmenu"><p>';
if ($res > 0)
echo '<a href="index.php?act=new">Новые статьи</a> [' . $res . ']<br/>';
echo '<a href="index.php?act=topread">Самые читаемые</a></p></div>';
$id = 0;
$tip = "cat";
}else{
$tip = $zag['type'];
if ($tip == "cat") {
echo '<div class="phdr"><b>' . htmlentities($zag['text'], ENT_QUOTES, 'UTF-8') . '</b></div>';
}
}
switch ($tip) {
case 'cat' :
$req = mysql_query("SELECT COUNT(*) FROM `lib` WHERE `type` = 'cat' AND `refid` = '" . $id . "'");
$totalcat = mysql_result($req, 0);
$bkz = mysql_query("SELECT COUNT(*) FROM `lib` WHERE `type` = 'bk' AND `refid` = '" . $id . "' AND `moder`='1'");
$totalbk = mysql_result($bkz, 0);
if ($totalcat > 0) {
$total = $totalcat;
$req = mysql_query("SELECT `id`, `text` FROM `lib` WHERE `type` = 'cat' AND `refid` = '" . $id . "' ORDER BY `sort` ASC LIMIT " . $start . "," . $kmess);
if ($rights == 5 || $rights >= 6)
echo '<form action="index.php?act=move&mod=cat&id=' . $id . '" method="POST">';
while ($cat1 = mysql_fetch_array($req)) {
$cat2 = mysql_query("select `id` from `lib` where type = 'cat' and refid = '" . $cat1['id'] . "'");
$totalcat2 = mysql_num_rows($cat2);
$bk2 = mysql_query("select `id` from `lib` where type = 'bk' and refid = '" . $cat1['id'] . "' and moder='1'");
$totalbk2 = mysql_num_rows($bk2);
if ($totalcat2 != 0) {
$kol = "$totalcat2 кат.";
}
elseif ($totalbk2 != 0) {
$kol = "$totalbk2 ст.";
}else{
$kol = "0";
}
echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
echo ($rights == 5 || $rights >= 6 ? '<small><input type="checkbox" name="movearr[]" value="' . $cat1['id'] . '" /></small> ' : '') . '<a href="index.php?id=' . $cat1['id'] . '">' . $cat1['text'] . '</a> [' . $kol . ']' . ($rights == 5 || $rights >= 6 ? '<div class="sub"><a href="index.php?act=sdvig&mod=up&id=' . $cat1['id'] . '">вверх</a> | <a href="index.php?act=sdvig&mod=down&id=' . $cat1['id'] . '">вниз</a></div>' : '') . '</div>';
++$i;
}
echo '<div class="bmenu">Всего категорий: ' . $totalcat . '</div>';
if ($rights == 5 || $rights >= 6)
echo '<div class="gmenu"><input type="submit" name="submit" value="Переместить" /></div></form>';
}
elseif ($totalbk > 0) {
$total = $totalbk;
$bk = mysql_query("select * from `lib` where type = 'bk' and refid = '" . $id . "' and moder='1' order by `time` desc LIMIT " . $start . "," . $kmess);
if ($rights == 5 || $rights >= 6)
echo '<form action="index.php?act=move&mod=stat&id=' . $id . '" method="POST">';
while ($bk1 = mysql_fetch_array($bk)) {
echo is_integer($i / 2) ? '<div class="list1">' : '<div class="list2">';
$vr = $bk1['time'] + $set_user['sdvig'] + $set['timeshift'] * 3600;
$vr = date("d.m.y / H:i", $vr);
echo $div . ($rights == 5 || $rights >= 6 ? '<small><input type="checkbox" name="movearr[]" value="' . $bk1['id'] . '" /></small> ' : '') . '<b><a href="index.php?id=' . $bk1['id'] . '">' . htmlentities($bk1['name'], ENT_QUOTES, 'UTF-8') . '</a></b><br/>';
echo htmlentities($bk1['announce'], ENT_QUOTES, 'UTF-8') . '<br />';
$req = mysql_query("SELECT * FROM `users` WHERE `name`= '".$bk1['avtor']."'");
$user = mysql_fetch_assoc($req);
echo 'Добавил: <a href="index.php?act=my&name=' . $bk1['avtor'] . '">' . $bk1['avtor'] . '</a> <a href="../users/profile.php?user=' . $user['id'] . '">[анк]</a> (' . $vr . ')<br />';
echo 'Прочтений: ' . $bk1['count'] . '<br />';
echo 'Рейтинг: ' . $bk1['rate'] . '<br />';
$zzz = mysql_query("select `komm` from `lib` where type = 'cat' and id = '" . $id . "'");
$zzz = mysql_fetch_array($zzz);
if ($zzz['komm'] != 'no') {
$komm_count = mysql_result(mysql_query("SELECT COUNT(*) FROM `lib` WHERE type = 'komm' AND refid = '" . $bk1['id'] . "'"), 0);
echo '<a href="index.php?act=komm&id=' . $bk1['id'] . '">Комментарии:</a> ' . $komm_count;
}
echo '</div>';
++$i;
}
echo '<div class="bmenu">Всего статей: ' . $totalbk . '</div>';
if ($rights == 5 || $rights >= 6)
echo '<div class="gmenu"><input type="submit" name="submit" value="Переместить" /></div></form>';
}else{
$total = 0;
}
// Навигация по страницам
if ($total > $kmess) {
echo '<div class="c">' . functions::display_pagination('index.php?id=' . $id . '&', $start, $total, $kmess) . '<br />';
echo '<form action="index.php" method="get"><input type="hidden" name="id" value="' . $id . '"/><input type="text" name="page" size="2"/><input type="submit" value="К странице >>"/></form></div>';
}
if (($rights == 5 || $rights >= 6) && $id != 0) {
$ct = mysql_query("select `id` from `lib` where type='cat' and refid='" . $id . "'");
$ct1 = mysql_num_rows($ct);
if ($ct1 == 0) {
echo "<div class='rmenu'><a href='index.php?act=del&id=" . $id . "'>Удалить категорию</a></div>";
}
echo "<div class='gmenu'><a href='index.php?act=edit&id=" . $id . "'>Изменить категорию</a></div>";
}
if (($rights == 5 || $rights >= 6) && ($zag['ip'] == 1 || $id == 0)) {
echo "<div class='menu'><a href='index.php?act=mkcat&id=" . $id . "'>Создать категорию</a></div>";
}
if ($zag['ip'] == 0 && $id != 0) {
if (($rights == 5 || $rights >= 6) || ($zag['soft'] == 1 && !empty ($_SESSION['uid']))) {
echo "<div class='menu'><a href='index.php?act=write&id=" . $id . "'>Написать статью</a></div>";
}
if ($rights == 5 || $rights >= 6) {
echo "<div class='menu'><a href='index.php?act=load&id=" . $id . "'>Выгрузить статью</a></div>";
}
}
if ($id != 0) {
$dnam = mysql_query("select `id`, `refid`, `text` from `lib` where type = 'cat' and id = '" . $id . "'");
$dnam1 = mysql_fetch_array($dnam);
$dnam2 = mysql_query("select `id`, `refid`, `text` from `lib` where type = 'cat' and id = '" . $dnam1['refid'] . "'");
$dnam3 = mysql_fetch_array($dnam2);
$catname = "$dnam3[text]";
$dirid = "$dnam1[id]";
$nadir = $dnam1['refid'];
while ($nadir != "0") {
echo "<div class='menu'><a href='index.php?id=" . $nadir . "'>$catname</a></div>";
$dnamm = mysql_query("select `id`, `refid`, `text` from `lib` where type = 'cat' and id = '" . $nadir . "'");
$dnamm1 = mysql_fetch_array($dnamm);
$dnamm2 = mysql_query("select `id`, `refid`, `text` from `lib` where type = 'cat' and id = '" . $dnamm1['refid'] . "'");
$dnamm3 = mysql_fetch_array($dnamm2);
$nadir = $dnamm1['refid'];
$catname = $dnamm3['text'];
}
}else{
echo "<div class='b'><a href='index.php?act=symb'>Настройки</a><br/>";
echo "<form action='index.php?act=search' method='post'>";
echo "<p>Поиск статьи:</p><br />";
echo "<input type='text' name='srh' value=''/><br />";
echo "<p>Метод поиска:</p><br />";
echo "<select name='mod'><option value='1'>По названию</option><option value='2'>По тексту</option></select><br />";
echo "<input type='submit' value='Найти!'/></form></div>";
}
break;
case 'bk' :
// Читаем статью
if (!empty ($_SESSION['symb'])) {
$simvol = $_SESSION['symb'];
}else{
$simvol = 2000; // Число символов на страницу по умолчанию
}
// Счетчик прочтений
if ($_SESSION['lib'] != $id) {
$_SESSION['lib'] = $id;
$libcount = intval($zag['count']) + 1;
mysql_query("UPDATE `lib` SET `count` = '" . $libcount . "' WHERE `id` = '" . $id . "'"); }
// Заголовок статьи
echo '<div class="phdr"><b>' . htmlentities($zag['name'], ENT_QUOTES, 'UTF-8') . '</b></div>';
// Автор книги
$vr5 = $zag['time'] + $set_user['sdvig'] + $set['timeshift'] * 3600;
$vr6 = date("d.m.y / H:i", $vr5);
$aft = mysql_fetch_array(mysql_query("SELECT * FROM `users` WHERE `name` = '" . $zag['avtor'] . "';"));
$aft = (int) $aft['id'];
echo '<div class="menu">Добавил: <a href="index.php?act=my&name=' . $zag['avtor'] . '">' . $zag['avtor'] . '</a> <a href="../users/profile.php?user=' . $user['id'] . '">[анк]</a> (' . $vr6 . ') <br /> Прочтений: ' . $zag['count'] . ' <br /> Рейтинг: ';
if (isset($_GET['plus']) && !$_SESSION['book_' . $id]) {
$zag['rate'] = intval($zag['rate'] + 1);
$_SESSION['book_' . $id] = 1;
mysql_query("UPDATE `lib` SET `rate` = '" . $zag['rate'] . "' WHERE `id` = '" . $id . "';"); }
if (isset($_GET['minus']) && !$_SESSION['book_' . $id]) {
$zag['rate'] = intval($zag['rate'] - 1);
$_SESSION['book_' . $id] = 1;
mysql_query("UPDATE `lib` SET `rate` = '" . $zag['rate'] . "' WHERE `id` = '" . $id . "';"); }
if (!isset($_GET['plus']) && !isset($_GET['minus']) && !$_SESSION['book_' . $id] && $user_id) { echo '<span class="green"><a href="index.php?id=' . $id . '&plus"><b>+</b></a></span> | <b>' . ($zag['rate'] != 0 ? ($zag['rate'] > 0 ? '<span class="green">' : '<span class="red">') : '<span style="color:blue;">') . $zag['rate'] . '</span></b> | <span class="red"><a href="index.php?id=' . $id . '&minus"><b>-</b></a></span></div>';
}else{
echo '<b>' . ($zag['rate'] != 0 ? ($zag['rate'] > 0 ? '<span class="green">' : '<span class="red">') : '<span style="color:blue;">') . $zag['rate'] . '</span></b></div>';
}
// Постраничная навигация читаемой статьи
// Используется модифицированный код от hintoz
$tx = $zag['text'];
$strrpos = mb_strrpos($tx, " ");
$pages = 1;
// Вычисляем номер страницы
if (isset ($_GET['page'])) {
$page = abs(intval($_GET['page']));
if ($page == 0)
$page = 1;
$start = $page - 1;
}else{
$page = $start + 1;
}
$t_si = 0;
if ($strrpos) {
while ($t_si < $strrpos) {
$string = mb_substr($tx, $t_si, $simvol);
$t_ki = mb_strrpos($string, " ");
$m_sim = $t_ki;
$strings[$pages] = $string;
$t_si = $t_ki + $t_si;
if ($page == $pages) {
$page_text = $strings[$pages];
}
if ($strings[$pages] == "") {
$t_si = $strrpos++;
}else{
$pages++;
}
}
if ($page >= $pages) {
$page = $pages - 1;
$page_text = $strings[$page]; }
$pages = $pages - 1;
if ($page != $pages) {
$prb = mb_strrpos($page_text, " ");
$page_text = mb_substr($page_text, 0, $prb);
}
}else{
$page_text = $tx; }
// Текст статьи
$page_text = htmlentities($page_text, ENT_QUOTES, 'UTF-8');
echo '<div class="c"><p>' . bbcode::tags(functions::smileys(nl2br($page_text), 0)) . '</p></div>';
if ($pages > 1) {
echo '<div class="b">' . functions::display_pagination('index.php?id=' . $id . '&', $start, $pages, 1) . '<br />';
echo '<form action="index.php" method="get"><input type="hidden" name="id" value="' . $id . '"/><input type="text" name="page" size="2"/><input type="submit" value="К странице >>"/></form></div>';
}
echo '<div class="menu">';
if ($rights == 5 || $rights >= 6) {
echo '<a href="index.php?act=edit&id=' . $id . '">Редактировать</a><br />';
echo '<a href="index.php?act=del&id=' . $id . '">Удалить</a><br />';
}
echo '<a href="index.php?act=java&id=' . $id . '">Скачать Java книгу</a></div>';
// Ссылка на комментарии
$mmm = mysql_query("select `komm` from `lib` where type = 'cat' and id = '" . $zag['refid'] . "'");
$mmm = mysql_fetch_array($mmm);
if (($set['mod_lib_comm'] || $rights >= 7) && $mmm['komm'] != 'no') {
echo '<div class="phdr"><b>Комментарии</b></div>';
$cnt = mysql_result(mysql_query("SELECT COUNT(*) FROM `lib` WHERE type = 'komm' AND refid = '" . $id . "'"), 0);
if ($cnt == 0) {
echo '<div class="b">Нет комментариев, будь первым!</div>';
}else{
$km = mysql_query("select * from `lib` where type = 'komm' and refid = '" . $id . "' LIMIT 10;");
while ($mass = mysql_fetch_assoc($km)) {
echo ($i % 2) ? '<div class="list2">' : '<div class="list1">';
$uz = mysql_query("select * from `users` where name='" . functions::check($mass['avtor']) . "';");
$mass1 = mysql_fetch_array($uz);
if ((!empty($_SESSION['uid'])) && ($_SESSION['uid'] != $mass1['id'])) {
echo "<a href='../users/profile.php?user=" . $mass1['id'] . "'>$mass[avtor]</a>";
}else{
echo $mass['avtor'];
}
$vr = $mass['time'] + $set_user['sdvig'] + $set['timeshift'] * 3600;
$vr1 = date("d.m.Y / H:i", $vr);
switch ($mass1['rights']) {
case 7 :
echo ' [Adm] ';
break;
case 6 :
echo ' [Smd] ';
break;
case 5 :
echo ' [Mod] ';
break;
case 1 :
echo ' [Kil] ';
break;
}
$ontime = $mass1['lastdate'];
$ontime2 = $ontime + 300;
if ($realtime > $ontime2) {
echo ' [<span class="red">OFF</span>]';
}else{
echo ' [<span class="green">ON</span>]';
}
echo " ($vr1)<br/>";
if ($set_user['smileys']) {
$tekst = functions::smileys($mass['text'], ($mass['from'] == $nickadmina || $mass['from'] == $nickadmina2 || $mass1['rights'] >= 1) ? 1 : 0);
}else{
$tekst = $mass['text'];
}
echo "$tekst<br/>";
if ($rights == 5 || $rights >= 6) {
echo "(<a href='index.php?act=del&id=" . $mass['id'] . "'>Удалить</a>)";
}
echo '</div>';
++$i;
}
}
if ($user_id) {
echo "<div class='gmenu'><form action='index.php?act=addkomm&id=" . $id . "' method='post'>
Cообщение(max. 500)<br/>
<textarea rows='2' name='msg'></textarea><br/>
<input type='checkbox' name='msgtrans' value='1' /> Транслит<br/>
<input type='submit' name='submit' value='добавить' /></form></div>";
}
echo "<div class='menu'> <a href='index.php?act=komm&id=" . $id . "'>Все комментарии</a> [$cnt]</div>"; }
$dnam = mysql_query("select `id`, `refid`, `text` from `lib` where type = 'cat' and id = '" . $zag['refid'] . "'");
$dnam1 = mysql_fetch_array($dnam);
$catname = "$dnam1[text]";
$dirid = "$dnam1[id]";
$nadir = $zag['refid'];
while ($nadir != "0") {
echo "<div class='menu'> <a href='index.php?id=" . $nadir . "'>$catname</a></div>";
$dnamm = mysql_query("select `id`, `refid`, `text` from `lib` where type = 'cat' and id = '" . $nadir . "'");
$dnamm1 = mysql_fetch_array($dnamm);
$dnamm2 = mysql_query("select `id`, `refid`, `text` from `lib` where type = 'cat' and id = '" . $dnamm1['refid'] . "'");
$dnamm3 = mysql_fetch_array($dnamm2);
$nadir = $dnamm1['refid'];
$catname = $dnamm3['text'];
}
break;
default :
header("location: index.php");
break;
}
}
require_once ('../incfiles/end.php');