View file library/index.php

File size: 7.26Kb
<?php 
// by mides, icq: 529-899-6, mail: [email protected]

$title = 'Библиотека';
require("../config.php");
require("../includes/start.php");
require("../includes/functions.php");

tp('Библиотека');

$id = num($_REQUEST['id']);

switch($_GET['act']){

###############################################################################
##                       Главная страница                                    ##
###############################################################################
default:

echo '<div class="s1">Разделы</div><div class="s2">';

$result_cats = mysql_query("SELECT * FROM `library_cats` ORDER BY `name`");
if(mysql_num_rows($result_cats)){
	while($cat = mysql_fetch_assoc($result_cats)){
		$cat_articles = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `library` WHERE `id_cat` = '".$cat['id']."' and `ok` = 1"), 0);
		echo '<a href="index.php?act=cat_view&amp;id='.$cat['id'].'">'.$cat['name'].'</a> ('.$cat_articles.')<br/>';
	}
	if(!empty($_SESSION['login'])){
		echo '<br/><a href="index.php?act=add" class="button" />Добавить статью</a>';
		if($_SESSION['access'] > 1){
			$art_no = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `library` WHERE `ok` = 0"), 0);
			echo '<br/><a href="moder.php" class="button" />Модерировать ('.$art_no.')</a>';
		}
	}
}else{
	echo 'Разделов еще нет';
}
echo '</div>';
nav();

break;

###############################################################################
##                          Просмотр раздела                                 ##
###############################################################################
case 'cat_view':

$cat = mysql_fetch_assoc(mysql_query("SELECT * FROM `library_cats` WHERE `id` = '$id'"));
if(isset($cat['id'])){
	echo '<div class="s1">'.$cat['name'].'</div><div class="s2">';
	$count_articles = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `library` WHERE `id_cat` = '$id' and `ok` = 1"), 0);
	if($count_articles > 0){
		$pages = ceil($count_articles/$config['onpage']);
		if(isset($_REQUEST['page'])){
			$page = num($_REQUEST['page']);
		}else{
			$page = 1;
		}
		$from = ($page-1)*$config['onpage'];

		$result_articles = mysql_query("SELECT `id`, `title`, `time`, `views` FROM `library` WHERE `id_cat` = '$id' and `ok` = 1 ORDER BY `time` DESC LIMIT $from, ".$config['onpage']."");
		while($article = mysql_fetch_assoc($result_articles)){
			echo '<a href="?act=view&amp;id='.$article['id'].'">'.$article['title'].'</a> ('.date('d.m.y, H:i', $article['time']).' ('.$article['views'].')<br/>';
		}
		echo '</div>';
		echo '<div class="s1">Навигация</div><div class="s2">';
		navig($page, 'index.php?act=cat_view&amp;id='.$id.'&amp;', $pages);
		echo '<a href="./">к разделам</a><br/><a href="../">на главную</a>';
		echo '</div>';
	}else{
		echo 'Статей в раделе еще нет!</div>';
		nav2('./', 'к разделам');
	}
}else{
	error('Выбранного раздела не существует!');
	nav2('./', 'к разделам');
}

break;

###############################################################################
##                         Просмотр рассказа                                 ##
###############################################################################
case 'view':

$article = mysql_fetch_assoc(mysql_query("SELECT * FROM `library` WHERE `id` = '$id'"));
if(isset($article['id'])){
	echo '<div class="s1">'.$article['title'].'</div><div class="s2">';
	echo bb(nl2br($article['text'])).'<br/><br/>';
	echo '<i>Добавил(а): '.$article['login'].' ('.date('d.m.y / H:i', $article['time']).')</i><br/>';
	echo '<i>Просмотров: '.$article['views'].'</i><br/>';
	echo '</div>';
	if(empty($_SESSION['viewed'.$id])){
		$_SESSION['viewed'.$id] = 1;
		mysql_query("UPDATE `library` SET `views` = (views+1) WHERE `id` = '$id'");
	}
}else{
	error('Этой статьи не существует!');
}
nav2('?act=cat_view&amp;id='.$article['id_cat'].'', 'назад к разделу');

break;

###############################################################################
##                      Форма добавления статьи                              ##
###############################################################################
case 'add':

if($_SESSION['login']){
	$result_cats = mysql_query("SELECT * FROM `library_cats` ORDER BY `name`");
	if(mysql_num_rows($result_cats)){
		echo '<div class="s1">Добавить статью</div><div class="s2">';
		echo '<form action="?act=added" method="post" name="form">';
		echo 'Раздел:<br/><select name="cat"><option value="0">Выберите раздел</option>';
		while($cat = mysql_fetch_assoc($result_cats)){
			echo '<option value="'.$cat['id'].'">'.$cat['name'].'</option><br/>';
		}
		echo '</select><br/>';
		echo 'Заголовок:<br/><input name="title" type="text" maxlength="50" /><br/>';
		echo 'Текст:<br/><textarea name="text" rows="6"></textarea><br/>';
		echo '<input name="submit" type="submit" value="Написать" /></form></div>';
		nav2('./', 'назад');
	}else{
		error('Вы не можете добавить статью, т.к. нет разделов');
		nav2('./', 'назад');
	}
}else{
	error('Вы не можете добавить статью, т.к. вы не <a href="../pages/auth.php">авторизованы</a>');
	nav2('./', 'назад');
}

break;

###############################################################################
##                            Добавление статьи                              ##
###############################################################################
case 'added':

if(!empty($_SESSION['login'])){
	if(time() > $_SESSION['antispam']){
		$result_cats = mysql_query("SELECT `id` FROM `library_cats`");
		if(mysql_num_rows($result_cats)){
			if(!empty($_POST['cat']) && !empty($_POST['title']) && !empty($_POST['text'])){
				$cat = num($_POST['cat']);
				$title = sec($_POST['title']);
				$text = sec($_POST['text']);
				mysql_query("INSERT INTO `library` SET `id_cat` = '$cat', `title` = '$title', `text` = '$text', `login` = '".$_SESSION['login']."', `time` = '".time()."'");
				mysql_query("UPDATE `users` SET `user_points` = (user_points+1) WHERE `id` = '".$_SESSION['user_id']."'");
				$_SESSION['antispam'] = time() + $config['antispam'];
				info('Статья отправлена на модерацию, после чего будет добавлена или отклонена!');
				nav2('./', 'назад в библиотеку');
			}else{
				error('Вы не заполнили поля или не выбрали раздел!');
				nav2('?act=add', 'назад');
			}
		}else{
			error('Нельзя добавить статью, т.к. нет разделов!');
			nav2('./', 'назад в библиотеку');
		}
	}else{
		error('Антиспам! Разрешено писать раз в '.$config['antispam'].' сек.!');
		nav2('?act=add', 'назад');
	}		
}else{
	info('Вы не авторизованы!');
	nav2('?act=add', 'назад');
}

break;

}

require("../includes/tail.php");
?>