Файл: PROFIWM.COM/blog.php
Строк: 117
<?
// ЛУЧШИЕ СКРИПТЫ ТОЛЬКО НА 4MAST.RU
// АВТОР Chainsaw
// ТОЛЬКО ЭКСКЛЮЗИВНЫЕ СКРИПТЫ
require_once('system/core.php');
$_title = 'Блоги';
require_once(root.'system/header.php');
if(!$user['id']){
header('location:/');
die();
}
$do = isset($_GET['do']) ? TextGuard($_GET['do']) : false;
switch($do){
/* Главная страница */
default:
echo '<div class="post1"><a href="?do=add">Добавить запись</a> / <a href="?do=my">Мои записи</a> ('.core::$dbs->querySingle("SELECT COUNT(id) FROM `blog` where `user_id` = ?",array($user['id'])).')</div>';
$k_post = core::$dbs->querySingle("SELECT COUNT(id) FROM `blog`");
$max = $user['on_page'];
$cp = ceil($k_post/$max);
if(isset($_GET['p']) && is_numeric($_GET['p'])){
$p = abs(intval($_GET['p']));
if($_GET['p']>$cp) $p = $cp;
if($_GET['p']<1)$p = 1;
} else {
$p = 1;
}
$start = $p*$max-$max;
if($k_post==0){
echo '<b>Записей еще нет!</b>';
}
$array = core::$dbs->query("SELECT * FROM `blog` ORDER BY `time` DESC LIMIT $start,$max");
while($arr = $array->fetch()){
echo '<div class="post2"><img src="images/4417.png" alt="*"/> <b>'.$arr['name'].'</b> ('.times($arr['time']).')<br/>';
if(strlen($arr['text'])>25){
echo mb_substr($arr['text'],0,25).'...<a href="?do=read&id='.$arr['id'].'">Читать</a><br/>';
} else {
echo $arr['text'].'<br/>';
}
echo '» Опубликовал: '.ustatus($arr['user_id']).' <a href="/us'.$arr['user_id'].'">'.uname($arr['user_id']).'</a><br/>';
echo '<a href="?do=comm&id='.$arr['id'].'">Обсудить</a> ('.core::$dbs->querySingle("SELECT COUNT(id) FROM `comm` WHERE `id_blog` = ?",array($arr['id'])).')';
echo '</div>';
}
navig('?');
break;
/* Добавить запись */
case 'add':
if(isset($_POST['add'])){
$name = TextGuard($_POST['name']);
$text = TextGuard($_POST['text']);
if(empty($name) OR strlen($name)<5){
$err = 'Не введено название записи или оно короче 5 символов!';
}
if(empty($text) OR strlen($text)<5){
$err = 'Не введено содержание записи или оно короче 5 символов!';
}
if(empty($err)){
core::$dbs->query("INSERT INTO `blog` SET `name` = ?, `text` = ?, `time` = ?, `user_id` = ?",array($name,$text,time(),$user['id']));
$last = core::$dbs->lastInsertId();
header('location: ?do=read&id='.$last);
die();
} else {
echo '<div class="post2"><b>'.$err.'</b></div>';
}
}
echo '<div class="post2"><form action="?do=add" method="post">Название[5-60]:<br/><input type="text" name="name"/><br/>Содержание:<br/><textarea name="text"></textarea><br/><input type="submit" name="add" value="Добавить"/></form></div>';
echo '<div class="post2"><a href="?">Вернуться</a></div>';
break;
/* Открыть запись полностью */
case 'read':
$id = isset($_GET['id']) ? abs(intval($_GET['id'])) : false;
$array = core::$dbs->query("SELECT name,text,user_id,time FROM `blog` WHERE `id` = ? LIMIT 1",array($id));
if($array->rowCount()==0){
header('location:/');
die();
}
$arr = $array->fetch();
if($user['status']>=2){
echo '<div class="post2"><a href="?do=del&id='.$id.'">Удалить</a> / <a href="?do=edit&id='.$id.'">Изменить</a></div>';
}
// Положительный голос
if(isset($_GET['like'])){
$prv = core::$dbs->query("SELECT `id` FROM `blog_vote` WHERE `blog` = ? AND `user_id` = ? LIMIT 1",array($id,$user['id']));
if($prv->rowCount()!=FALSE){
echo'Вы уже голосовали!';
} else {
core::$dbs->query("INSERT INTO `blog_vote` SET `blog` = ?, `user_id` = ?, `type` = ?",array($id,$user['id'],plus));
header('location: ?do=read&id='.$id);
die();
}
}
// Отрицательный голос
if(isset($_GET['dlike'])){
$prv = core::$dbs->query("SELECT `id` FROM `blog_vote` WHERE `blog` = ? AND `user_id` = ? LIMIT 1",array($id,$user['id']));
if($prv->rowCount()!=FALSE){
echo'Вы уже голосовали!';
} else {
core::$dbs->query("INSERT INTO `blog_vote` SET `blog` = ?, `user_id` = ?, `type` = ?",array($id,$user['id'],minus));
header('location: ?do=read&id='.$id);
die();
}
}
echo '<div class="post2">';
echo '<b>'.$arr['name'].'</b><br/>'.out($arr['text']).'<br/>» Опубликовал: '.uname($arr['user_id']).' ('.times($arr['time']).')<br/>';
$vote = core::$dbs->query("SELECT `id` FROM `blog_vote` WHERE `blog` = ? AND `user_id` = ? LIMIT 1",array($id,$user['id']));
$like = core::$dbs->querySingle("SELECT COUNT(id) FROM `blog_vote` WHERE `type` = ? and `blog` = ?",array(plus,$id));
$dlike = core::$dbs->querySingle("SELECT COUNT(id) FROM `blog_vote` WHERE `type` = ? and `blog` = ?",array(minus,$id));
echo '» Рейтинг: (<font color="green">+'.$like.'</font> / <font color="red">-'.$dlike.'</font>)<br/>';
if($vote->rowCount()==0){
if($info['id_us']!=$user['id']){
echo '<a href="?do=read&id='.$id.'&like">Плюс</a> / <a href="?do=read&id='.$id.'&dlike">Минус</a><br/>';}
}
echo '<a href="?do=comm&id='.$id.'">Обсудить</a> ('.core::$dbs->querySingle("SELECT COUNT(id) FROM `comm` WHERE `id_blog` = ?",array($arr['id'])).')<br/>';
echo '</div>';
echo '<div class="post2"><a href="?">Вернуться</a></div>';
break;
/* Мои записи */
case 'my':
$k_post = core::$dbs->querySingle("SELECT COUNT(id) FROM `blog` WHERE `user_id` = ?",array($user['id']));
if($k_post==0){
echo '<b>Записей еще нет!</b>';
}
$max = $user['on_page'];
$cp = ceil($k_post/$max);
if(isset($_GET['p']) && is_numeric($_GET['p'])){
$p = abs(intval($_GET['p']));
if($_GET['p']>$cp) $p = $cp;
if($_GET['p']<1)$p = 1;
} else {
$p = 1;
}
$start = $p*$max-$max;
$array = core::$dbs->query("SELECT * FROM `blog` WHERE `user_id` = ? ORDER BY `time` DESC LIMIT $start,$max",array($user['id']));
while($arr = $array->fetch()){
echo '<div class="post2"><b>'.$arr['name'].'</b> ('.times($arr['time']).')<br/>';
if(strlen($arr['text'])<50){
echo $arr['text'].'...<a href="?do=read&id='.$arr['id'].'">Далее []</a><br/>';
} else {
echo out($arr['text']).'<br/>';
}
echo '<a href="?do=comm&id='.$arr['id'].'">Обсудить</a> ('.core::$dbs->querySingle("SELECT COUNT(id) FROM `comm` WHERE `id_blog` = ?",array($arr['id'])).')';
echo '</div>';
}
navig('?do=my&');
echo '<div class="post2"><a href="?">Вернуться</a></div>';
break;
/* Комментарии */
case 'comm':
$id = isset($_GET['id']) ? abs(intval($_GET['id'])) : false;
$row = core::$dbs->query("SELECT * FROM `blog` WHERE `id` = ? LIMIT 1",array($id));
if($row->rowCount()==0){
header('location:/');
die();
}
if(isset($_POST['add'])){
$text = TextGuard($_POST['text']);
if(empty($text) OR strlen($text)<3){
$err = 'Не введено сообщение или оно короче 3 символов!';
}
if(empty($err)){
core::$dbs->query("INSERT INTO `comm` SET `text` = ?, `time` = ?, `user_id` = ?, `id_blog` = ?",array($text,time(),$user['id'],$id));
header('location: ?do=comm&id='.$id);
die();
} else {
echo '<div class="post2"><b>'.$err.'</b></div>';
}
}
if(isset($_GET['otv'])){
$nk = abs(intval($_GET['nk']));
$rows = core::$dbs->query("SELECT * FROM `user` WHERE `id` = ? LIMIT 1",array($nk));
if($rows->rowCount()==0){
header('location: ?do=comm&id='.$id);
die();
}
$usr = $rows->fetch();
$st = '[b]'.$usr['login'].'[/b], ';
} else {
$st = '';
}
if(isset($_GET['del'])){
core::$dbs->query("DELETE FROM `comm` WHERE `id` = ?",array(abs(intval($_GET['uid']))));
header('location: ?do=comm&id='.$id);
die();
}
$k_post = core::$dbs->querySingle("SELECT COUNT(id) FROM `comm` WHERE `id_blog` = ?",array($id));
if($k_post==0){
echo '<b>Комментариев еще нет!</b>';
}
$max = $user['on_page'];
$cp = ceil($k_post/$max);
if(isset($_GET['p']) && is_numeric($_GET['p'])){
$p = abs(intval($_GET['p']));
if($_GET['p']>$cp) $p = $cp;
if($_GET['p']<1)$p = 1;
} else {
$p = 1;
}
$start = $p*$max-$max;
$array = core::$dbs->query("SELECT * FROM `comm` WHERE `id_blog` = ? ORDER BY `time` DESC LIMIT $start,$max",array($id));
while($arr = $array->fetch()){
echo '<div class="post2">'.($user['status']>=1 ? ' [<a href="?do=comm&id='.$id.'&del&uid='.$arr['id'].'">del</a>]':'').' <b>'.uname($arr['user_id']).'</b> ('.times($arr['time']).')<br/>'.out($arr['text']).''.(($arr['user_id']!=$user['id']) ? '<br/>[<a href="?do=comm&id='.$id.'&otv&nk='.$arr['user_id'].'">отв</a>]':'').'</div>';
}
echo '<div class="post2"><form action="?do=comm&id='.$id.'" method="post">Комментарий:<br/><textarea name="text">'.$st.'</textarea><br/><input type="submit" name="add" value="Добавить"/></form></div>';
navig('?do=comm&id='.$id.'&');
echo '<div class="post2"><a href="?do=read&id='.$id.'">Вернуться</a></div>';
break;
/* Изменить запись */
case 'edit':
if($user['status']<2){
header('location:/');
die();
}
$id = isset($_GET['id']) ? abs(intval($_GET['id'])) : false;
$array = core::$dbs->query("SELECT name,text,user_id,time FROM `blog` WHERE `id` = ? LIMIT 1",array($id));
if($array->rowCount()==0){
header('location:/');
die();
}
$arr = $array->fetch();
if(isset($_POST['add'])){
$name = TextGuard($_POST['name']);
$text = TextGuard($_POST['text']);
if(empty($name) OR strlen($name)<5){
$err = 'Не введено название записи или оно короче 5 символов!';
}
if(empty($text) OR strlen($text)<5){
$err = 'Не введено содержание записи или оно короче 5 символов!';
}
if(empty($err)){
core::$dbs->query("UPDATE `blog` SET `name` = ?, `text` = ? WHERE `id` = ? LIMIT 1",array($name,$text,$id));
header('location: ?do=read&id='.$id);
die();
} else {
echo '<div class="post2"><b>'.$err.'</b></div>';
}
}
echo '<div class="post2"><form action="?do=edit&id='.$id.'" method="post">Название[5-60]:<br/><input type="text" name="name" value="'.$arr['name'].'"/><br/>Содержание:<br/><textarea name="text">'.$arr['text'].'</textarea><br/><input type="submit" name="add" value="Добавить"/></form></div>';
echo '<div class="post2"><a href="?do=read&id='.$id.'">Вернуться</a></div>';
break;
/* Удалить запись */
case 'del':
$id = isset($_GET['id']) ? abs(intval($_GET['id'])) : false;
$array = core::$dbs->query("SELECT * FROM `blog` WHERE `id` = ?",array($id));
if($array->rowCount()==0){
header('location:/');
die();
}
core::$dbs->query("DELETE FROM `blog` WHERE `id` = ?",array($id));
header('location: ?');
break;
}
/* Низ блогов */
require_once('system/footer.php');
?>