View file visavi-rotorcms-63832fa/app/controllers/forum/bookmark.php

File size: 5.96Kb
<?php
#---------------------------------------------#
#      ********* RotorCMS *********           #
#           Author  :  Vantuz                 #
#            Email  :  visavi.net@mail.ru     #
#             Site  :  http://visavi.net      #
#              ICQ  :  36-44-66               #
#            Skype  :  vantuzilla             #
#---------------------------------------------#
require_once ('../includes/start.php');
require_once ('../includes/functions.php');
require_once ('../includes/header.php');
include_once ('../themes/header.php');

$act = (isset($_GET['act'])) ? check($_GET['act']) : 'index';
$start = (isset($_GET['start'])) ? abs(intval($_GET['start'])) : 0;
$tid = (isset($_GET['tid'])) ? abs(intval($_GET['tid'])) : 0;

show_title('Мои закладки');

if (is_user()) {

switch ($act):
############################################################################################
##                                    Главная страница                                    ##
############################################################################################
case 'index':

	//$total = DB::run() -> querySingle("SELECT count(*) FROM `bookmarks` WHERE `book_user`=?;", array($log));

	$total = Bookmark::count();

	if ($total > 0) {
		if ($start >= $total) {
			$start = last_page($total, $config['forumtem']);
		}

		//$querytopic = DB::run() -> query("SELECT `topics`.*, `bookmarks`.* FROM `bookmarks` LEFT JOIN `topics` ON `bookmarks`.`book_topic`=`topics`.`topics_id` WHERE `book_user`=?  ORDER BY `topics_last_time` DESC LIMIT ".$start.", ".$config['forumtem'].";", array($log));
		//$topics = $querytopic->fetchAll();

		$bookmarks = Bookmark::find_all_by_user_id($current_user->id);

		App::render('forum/bookmark', compact('bookmarks', 'start', 'total'));

	} else {
		show_error('Закладок еще нет!');
	}
break;

############################################################################################
##                                Добавление закладок                                     ##
############################################################################################
case 'add':
	$uid = check($_GET['uid']);

	$topic = DB::run() -> queryFetch("SELECT * FROM `topics` WHERE `topics_id`=? LIMIT 1;", array($tid));
	if (!empty($topic)) {
		if (empty($topic['topics_closed'])) {
			$bookmark = DB::run() -> querySingle("SELECT `book_id` FROM `bookmarks` WHERE `book_topic`=? AND `book_user`=? LIMIT 1;", array($tid, $log));
			if (empty($bookmark)) {
				DB::run() -> query("INSERT INTO `bookmarks` (`book_user`, `book_topic`, `book_forum`, `book_posts`) VALUES (?, ?, ?, ?);", array($log, $tid, $topic['topics_forums_id'], $topic['topics_posts']));

				notice('Тема успешно добавлена в закладки!');
				redirect("topic.php?tid=$tid&start=$start");

			} else {
				show_error('Ошибка! Данная тема уже имеется в закладках!');
			}
		} else {
			show_error('Ошибка! Нельзя добавлять в закладки закрытую тему!');
		}
	} else {
		show_error('Ошибка! Данной темы не существует!');
	}

	App::render('includes/back', array('link' => 'topic.php?tid='.$tid.'start='.$start, 'title' => 'Вернуться'));
break;

############################################################################################
##                                 Удаление закладок                                      ##
############################################################################################
case 'del':

	$uid = check($_GET['uid']);
	$del = (isset($_POST['del'])) ? intar($_POST['del']) : 0;

	if ($uid == $_SESSION['token']) {
		if (!empty($del)) {
			$del = implode(',', $del);

			DB::run() -> query("DELETE FROM `bookmarks` WHERE `book_id` IN (".$del.") AND `book_user`=?;", array($log));

			notice('Выбранные темы успешно удалены из закладок!');
			redirect("bookmark.php?start=$start");

		} else {
			show_error('Ошибка! Отсутствуют выбранные закладки!');
		}
	} else {
		show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
	}

	App::render('includes/back', array('link' => 'bookmark.php?start='.$start, 'title' => 'Вернуться'));
break;

############################################################################################
##                                 Удаление закладок                                      ##
############################################################################################
case 'remove':

	$uid = check($_GET['uid']);

	if ($uid == $_SESSION['token']) {
		if (!empty($tid)) {
			$bookmark = DB::run() -> querySingle("SELECT `book_id` FROM `bookmarks` WHERE `book_topic`=? AND `book_user`=? LIMIT 1;", array($tid, $log));
			if (!empty($bookmark)) {
				DB::run() -> query("DELETE FROM `bookmarks` WHERE `book_topic`=? AND `book_user`=?;", array($tid, $log));

				notice('Тема успешно удалена из закладок!');
				redirect("topic.php?tid=$tid&start=$start");

			} else {
				show_error('Ошибка! Данной темы нет в закладках!');
			}
		} else {
			show_error('Ошибка! Отсутствуют выбранные закладки!');
		}
	} else {
		show_error('Ошибка! Неверный идентификатор сессии, повторите действие!');
	}

	App::render('includes/back', array('link' => 'topic.php?tid='.$tid.'start='.$start, 'title' => 'Вернуться'));
break;

default:
	redirect("bookmark.php");
endswitch;

} else {
	show_login('Вы не авторизованы, для управления закладками, необходимо');
}

App::render('includes/back', array('link' => 'index.php', 'title' => 'К форумам', 'icon' => 'fa-arrow-circle-up'));

include_once ('../themes/footer.php');
?>