File: D:/HostingSpaces/SBogers10/ijzerenman.komma.pro/app/Custom/News/NewsController.php
<?php
namespace Komma\News;
use Komma\Pages\DynamicPage;
use Komma\Pages\PageController;
use Komma\Pages\PageRepository;
class NewsController extends PageController
{
/**
* @var NewsService
*/
private $newsService;
/**
* @param DynamicPage $dynamicPage
* @param PageRepository $pageRepository
* @param NewsService $newsService
*/
public function __construct(
DynamicPage $dynamicPage,
PageRepository $pageRepository,
NewsService $newsService
)
{
parent::__construct($dynamicPage, $pageRepository);
$this->newsService = $newsService;
}
/**
* Show news page
*
* @return mixed
*/
public function index()
{
// Get current page entity
$entity = \Current::pageEntity();
list($parent) = $this->pageRepository->getParents($entity->page['lft'], $entity->page['rgt']);
// Get all published items
$newsItems = $this->newsService->publishedNewsItems();
// Get pagination
$pagination = $this->newsService->pagination($newsItems);
// Header image
$headerImage = $this->pageRepository->getHeaderImageByPageId($entity->page['id']);
if( ! empty($headerImage)) $headerImage = $headerImage->headerImage;
if(empty($headerImage)) $headerImage = $parent->headerImage;
// Render view
$view = \View::make('layouts.pages.news')
->with([
'entity' => $entity,
'global' => $parent,
'headerImage' => $headerImage,
'bodyClass' => $entity->codeName(),
'newsItems' => $newsItems,
'pagination' => $pagination,
])->render();
return $this->renderView($view, $entity);
}
}