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

File size: 1.63Kb
<?php

Class NewsController Extends BaseController {

	/**
	 * Список новостей
	 */
	public function index()
	{
		$total = News::count();

		$page = App::paginate(Setting::get('news_per_page'), $total);

		$news_list = News::all([
			'offset' => $page['offset'],
			'limit' => $page['limit'],
			'order' => 'created_at desc',
			'include' => ['user'],
		]);

		App::view('news.index', compact('news_list', 'page'));
	}

	/**
	 * Просмотр новости
	 */
	public function view($id)
	{
		if (!$news = News::find_by_id($id)) App::abort('default', 'Новость не найдена');

		App::view('news.view', compact('news'));
	}

	/**
	 * Создание новости
	 */
	public function create()
	{
		if (!User::isAdmin()) App::abort('403');

		if (Request::isMethod('post')) {

			$news = new News;
			$news->user_id = User::get('id');
			$news->title = Request::input('title');
			$news->text = Request::input('text');

			//$news->image = Request::input('company_name');

			if ($news->save()) {
				App::setFlash('success', 'Новость успешно создана!');
				App::redirect('/news/'.$news->id);
			} else {
				App::setFlash('danger', $news->getErrors());
				App::setInput($_POST);
			}
		}

		App::view('news.create');
	}

	/**
	 * Создание комментария
	 */
	public function createComment()
	{
		var_dump($_POST);
	}

	/**
	 * RSS лента
	 */
	public function rss()
	{
		$news_list = News::all([
			'limit' => 15,
			'order' => 'created_at desc',
			'include' => ['user'],
		]);

		header("Content-type:application/rss+xml; charset=utf-8");
		App::view('news.rss', compact('news_list'));
	}
}