Размер файла: 6.75Kb
<?php
// by mides, wmclub.mobi
$title = 'Блоги';
require('../config.php');
require('../includes/sys.php');
require('../includes/start.php');
require('../includes/header.php');
switch($_GET['act']){
###############################################################################
## Главная страница ##
###############################################################################
default:
tp('Блоги');
$r_cats = mysql_query("SELECT * FROM `blog_cats` ORDER BY `name`");
if(mysql_num_rows($r_cats)){
while($cat = mysql_fetch_assoc($r_cats)){
$articles = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `blog_articles` WHERE `id_cat` = '$cat[id]' and `ok` = 1"), 0);
echo '<img src="../images/folder.gif"> <a href="index.php?act=cat&id='.$cat['id'].'">'.$cat['name'].'</a> ('.$articles.')<br />';
}
if($u['id']){
echo '<br /><a href="index.php?act=add" class="button">Добавить статью</a>';
}
if($u['user_access'] > 1){
echo '<br /><a href="moder.php" class="button">Модерировать</a>';
}
}else{
echo 'Разделы еще не созданы!';
}
nav_main();
break;
###############################################################################
## Просмотр выбранного раздела ##
###############################################################################
case 'cat':
$id = intval($_REQUEST['id']);
$cat = mysql_fetch_assoc(mysql_query("SELECT * FROM `blog_cats` WHERE `id` = '$id'"));
if($cat['id']){
tp($cat['name']);
$all_articles = mysql_result(mysql_query("SELECT COUNT(`id`) FROM `blog_articles` WHERE `id_cat` = '$cat[id]' and `ok` = 1"), 0);
if($all_articles > 0){
$pages = ceil($all_articles/$config['onpage']);
if(intval($_REQUEST['page'])){
$page = intval($_REQUEST['page']);
}else{
$page = 1;
}
$from = ($page-1)*$config['onpage'];
$r_articles = mysql_query("SELECT `id`, `title`, `time` FROM `blog_articles` WHERE `id_cat` = '$cat[id]' and `ok` = 1 ORDER BY `time` DESC LIMIT $from, $config[onpage]");
while($article = mysql_fetch_assoc($r_articles)){
echo '<a href="?act=view&id='.$article['id'].'">'.$article['title'].'</a> ('.date('d.m.y, H:i', $article['time']).')<br />';
}
}else{
echo 'Статей пока нет :(';
}
echo '<hr />';
navig($page, '?act=cat&id='.$cat['id'].'&', $pages);
echo '<a href="./">Назад</a><br />';
echo '</div>';
}else{
error('Выбранный раздел не существует!');
nav('?');
}
break;
###############################################################################
## Просмотр статьи ##
###############################################################################
case 'view':
$id = intval($_REQUEST['id']);
$article = mysql_fetch_assoc(mysql_query("SELECT * FROM `blog_articles` WHERE `id` = '$id'"));
if($article['id']){
if($article['ok'] == 1){
tp($article['title']);
echo bb($article['text']).'<br />';
}else{
error('Выбранной статьи не существует!');
}
}else{
error('Выбранной статьи не существует!');
}
nav2('?act=cat&id='.$article['id_cat'], 'Назад в раздел');
break;
###############################################################################
## Форма добавления статьи ##
###############################################################################
case 'add':
if($u['id']){
if($_SESSION['spam'] < time()){
if($u['user_points'] >= $config['blog_limitadd']){
tp('Блоги > Добавить статью');
echo '<form action="?act=add_do" method="post" name="form">
Раздел:<br /><select name="cat">';
$r_cats = mysql_query("SELECT * FROM `blog_cats` ORDER BY `name`");
while($cat = mysql_fetch_assoc($r_cats)){
echo '<option value="'.$cat['id'].'">'.$cat['name'].'</option>';
}
echo '</select><br />
Заголовок(max50):<br /><input name="title" type="text" maxlength="50" /><br />
Текст(max1000):<br /><textarea name="text" cols="" rows="5"></textarea><br />
Метки(max50)*:<br /><input name="tags" type="text" maxlength="50" /><br />
<input name="submit" type="submit" value="Ok" />
</form>
* Через запятую';
}else{
error('Необходимо иметь минимум '.$config['blog_limitadd'].' '.$u['user_points'].' единиц кармы!');
}
}else{
error('Вы не можете писать чаще, чем раз в '.$config['antispam'].' сек.!');
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для добавления статьи :(');
}
nav('?');
break;
###############################################################################
## Добавление статьи ##
###############################################################################
case 'add_do':
if($u['id']){
if($_SESSION['spam'] < time()){
if($u['user_points'] >= $config['blog_limitadd']){
if(!empty($_POST['cat']) and !empty($_POST['title']) and !empty($_POST['tags'])){
$text = check($_POST['text']);
mb_internal_encoding('UTF-8');
if(mb_strlen($text) <= 1000){
$cat = intval($_POST['cat']);
$title = check($_POST['title']);
$tags = check($_POST['tags']);
mysql_query("INSERT INTO `blog_articles` SET `id_cat` = '$cat', `title` = '$title', `text` = '$text', `tags` = '$tags', `time` = '".time()."'");
$_SESSION['spam'] = $config['antispam'] + time();
info('Статья успешно добавлена, после проверки модератором, она появится в блоге.');
nav('?');
}else{
error('Текст не может содержать больше 1000 символов!');
nav('?act=add');
}
}else{
error('Вы не заполнили поля!');
nav('?act=add');
}
}else{
error('Необходимо иметь минимум '.$config['blog_limitadd'].' единиц кармы!');
nav('?act=add');
}
}else{
error('Вы не можете писать чаще, чем раз в '.$config['antispam'].' сек.!');
nav('?act=add');
}
}else{
error('Вы не <a href="../pages/login.php">авторизованы</a> для добавления статьи :(');
nav('?act=add');
}
break;
}
require('../includes/tail.php');
?>