Просмотр файла news/app/Controllers/Admin_Controller.php

Размер файла: 2.76Kb
<?php

class Admin_Controller extends Admin_Model
{
	function index($f3)
	{
		if($this->isAdmin($f3))
		{
			if(isset($_GET['delete']))
			{
				if(parent::news_exist_sql('news_id', $_GET['delete']))
				{
					$f3->set('deleted', parent::news_delete_sql($f3->clean($_GET['delete'])));
				}
			}
			
			$f3->set('title', 'Админ-панель');
			$f3->set('content',$f3->get('TEMPLATE').'/admin/index.htm');
			
			$news_count = parent::news_count_sql();
						
			if($news_count > 0)
			{
				$navigator = new Paginator($news_count, 5, '?');
				
				$f3->set('news_sql', parent::news_list_sql($navigator->limit()));
				$f3->set('navigator', $navigator);
				
			}
						
			$f3->set('news_count', $news_count);

			$this->display($f3);
		}
		else
		{
			$f3->reroute('/admin/entry');
		}
	}
	
	function news_add($f3)
	{
		if($this->isAdmin($f3))
		{
			$f3->set('title', 'Админ-панель / Добавить новость');
			$f3->set('content',$f3->get('TEMPLATE').'/admin/news_add.htm');
		
			$this->display($f3);
		}
		else
		{
			$f3->reroute('/admin/entry');
		}
	}
	
	function news_add_handler($f3)
	{
		if($this->isAdmin($f3))
		{
			$news = array();
			$error = array();
		
			$f3->set('title', 'Админ-панель / Добавить новость');
			$f3->set('content',$f3->get('TEMPLATE').'/admin/news_add.htm');
		
			$news['title'] = $f3->clean($f3->get('POST.news_title'));
			$news['text'] = $this->protect($f3->get('POST.news_text'));
			$news['date'] = time();
		
			if(empty($news['title']))
			{
				$error['empty_title'] = 'Ошибка: Не заполнено поле "Название".';
			}
		
			if(empty($news['text']))
			{
				$error['empty_text'] = 'Ошибка: Не заполнено поле "Текст".';
			}
		
			if(!empty($news['title']) and parent::news_exist_sql('news_title', $news['title']))
			{
				$error['empty_text'] = 'Ошибка: Новость с таким названием уже есть.';
			}
		
			if(empty($error))
			{
				$f3->set('news_added', parent::news_add_sql($news['title'], $news['text'], $news['date']));
			}
			else
			{
				$f3->set('errors', $error);
			}
		
			$this->display($f3);
		}
		else
		{
			$f3->reroute('/admin/entry');
		}
	}
	
	function entry($f3)
	{
		if(!$this->isAdmin($f3))
		{
			$f3->set('title', 'Авторизация');
			$f3->set('content',$f3->get('TEMPLATE').'/admin/entry.htm');
		
			$this->display($f3);
		}
		else
		{
			$f3->reroute('/admin');
		}
	}
	
	function entry_handler($f3)
	{		
		$password = $f3->get('POST.password');
		
		if(empty($password))
		{
			$f3->reroute('/admin/entry');
		}
		
		if(md5($password) != md5($f3->get('PASSWORD')))
		{
			$f3->reroute('/admin/entry');
		}
		else
		{
			$f3->set('COOKIE.password', md5($password));
			$f3->reroute('/admin');
		}
	}
}