Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
evsmash/news / libs / Http / News.php
Size: Mime:
<?php

namespace Evsmash\News\Http;

use Evsmash\Core\Http\Base;

use Evsmash\Core\Dec\Thumb;
use Evsmash\Core\Input\Flash;
use Evsmash\Core\Input\Route;
use Evsmash\Core\Simpy\Element;
use Evsmash\Core\System\Trans;

use Evsmash\News\News as NewsModel;
use Evsmash\News\NewsType;

class News extends Base {

	// index
	public function index() {

		// element
		$elements = NewsModel::params()->published()->orderBy('created_at', 'desc')->paginate($this->settings->limit);

		// trans
		Trans::get($elements, 'news');

		// view
		$this->breadcrumbs('News');
		$this->view(compact(['elements']));

	}

	// type
	public function type() {

		// type
		$type = Element::check(new NewsType);

		// element
		$elements = NewsModel::params()->published()->where('type_id', $type->id)->orderBy('created_at', 'desc')->paginate($this->settings->limit);

		// trans
		Trans::get($type, 'news_types');
		Trans::get($elements, 'news');

		// flash
		Flash::set('type', $type->id);

		// view
		$this->breadcrumbs($type);
		$this->viewTitle($type->name);
		$this->view(compact(['elements']), 'evsmash/news/news/index');

	}

	// promoted
	public function promoted() {

		// element
		$elements = NewsModel::params()->published()->promoted()->orderBy('created_at', 'desc')->paginate($this->settings->limit);

		// trans
		Trans::get($elements, 'news');

		// view
		$this->breadcrumbs();
		$this->viewTitle('Promoted');
		$this->view(compact(['elements']), 'evsmash/news/news/index');

	}

	// albums
	public function albums() {

		// element
		$elements = NewsModel::params()->published()->orderBy('created_at', 'desc')->paginate($this->settings->limit);

		// trans
		Trans::get($elements, 'news');

		// view
		$this->breadcrumbs();
		$this->viewTitle('Albums');
		$this->view(compact(['elements']), 'evsmash/news/news/index');

	}

	// show
	public function show() {

		// element
		$element = Element::check(new NewsModel);

		// allowed
		Element::allowed($element, 'published');

		// stats
		Element::stats($element);

		// trans
		Trans::get($element, 'news');

		// flash
		Flash::set('description', $element->sneak);
		Flash::set('type', $element->type_id);
		Flash::set('photo', Thumb::url($element->photo, '1000xauto', ['upsize' => true]));

		// view
		$this->breadcrumbs($element);
		$this->viewTitle($element->name);
		$this->view(compact(['element']));

	}

}