HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
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);
    }
}