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/SBogers96/smilefotografie.nl/app/Komma/Albums/AlbumController.php
<?php


namespace Komma\Albums;


use Illuminate\Routing\Controller;
use Komma\Core\MetaDataService;
use Komma\Pages\PageRepository;

class AlbumController extends Controller
{
    /**
     * @var PageRepository
     */
    private $pageRepository;
    /**
     * @var AlbumService
     */
    private $albumService;
    /**
     * @var MetaDataService
     */
    private $metaDataService;

    /**
     * @param PageRepository $pageRepository
     * @param AlbumService $albumService
     * @param MetaDataService $metaDataService
     */
    public function __construct(
        PageRepository $pageRepository,
        AlbumService $albumService,
        MetaDataService $metaDataService
    )
    {
        $this->pageRepository = $pageRepository;
        $this->albumService = $albumService;
        $this->metaDataService = $metaDataService;
    }

    /**
     * Show album overview page
     *
     * @param $page
     * @return mixed
     */
    public function showPage(\StdClass $page)
    {
        // Get all albums that belong to this page
        $albums = $this->albumService->albumsByPage($page);

        // Meta data
        $meta = $this->metaDataService->get($page);

        // Check for alternative view for companies
        $view = 'albums';
        $filter = $this->albumService->getFilter($page);
        if($filter == 'company') $view = 'albumsSmall';

        return \View::make('layouts.pages.' . $view)
            ->with([
                'page' => $page,
                'meta' => $meta,
                'bodyClass' => 'albums ' . $page->code_name,
                'albums' => $albums,
                'filter' => $filter,
                'negative' => 'negative',
            ]);
    }

    /**
     * Show album detail page
     *
     * @param $pageId
     * @param $albumId
     */
    public function show($pageId, $albumId)
    {
        $page = $this->pageRepository->page($pageId);
        $album = $this->albumService->albumByPageAndId($page,$albumId);

        // Add filter to route if needed
        if(isset($album->album_type)) $page->route .= '?filter=' . $album->album_type;

        // Black or white
        $album->negative ? $negative = 'negative' : $negative = '';

        // Meta data
        $meta = $this->metaDataService->get($page, $album);

        return \View::make('layouts.pages.album')
            ->with([
                'page' => $page,
                'album' => $album,
                'bodyClass' => $page->code_name . ' album',
                'negative' => $negative,
                'meta' => $meta
            ]);
    }
}