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
]);
}
}