File: D:/HostingSpaces/SBogers96/smilefotografie.nl/app/Komma/Pages/PageController.php
<?php
namespace Komma\Pages;
use Illuminate\Routing\Controller;
use Komma\Albums\AlbumService;
use Komma\Core\MetaDataService;
use Komma\Seo\SitemapService;
class PageController extends Controller
{
/**
* @var PageRepository
*/
protected $repository;
/**
* @var MetaDataService
*/
protected $metaDataService;
/**
* @param PageRepository $repository
* @param MetaDataService $metaDataService
* @param SitemapService $sitemapService
*/
public function __construct(
PageRepository $repository,
MetaDataService $metaDataService)
{
$this->repository = $repository;
$this->metaDataService = $metaDataService;
}
/**
* Show page
*
* @param $id
* @return mixed
*/
public function show($id)
{
// Get page
$page = $this->repository->page($id);
// Different view for album pages
if(is_album($page->code_name)) return \App::make('Komma\Albums\AlbumController')->showPage($page);
// Different view for album pages
if(has_form($page->code_name)) return \App::make('Komma\Forms\FormController')->showPage($page);
// Sitemap ?
if($page->code_name == 'sitemap') return $this->sitemap($page);
// Check for negative page-view
is_negative($page->code_name) ? $negative = 'negative' : $negative = '';
// Get images
$images = $this->repository->imagesByPageId($id);
// Meta data
$meta = $this->metaDataService->get($page);
return \View::make('layouts.pages.' . $page->code_name)
->with([
'page' => $page,
'images' => $images,
'bodyClass' => $page->code_name,
'negative' => $negative,
'meta' => $meta
]);
}
/**
* Abort page
*
* @return mixed
*/
public function abort()
{
// Get page
$page = $this->repository->pageByCodeName('abort');
// Meta data
$meta = $this->metaDataService->get($page);
// Render view
$view = \View::make('layouts.pages.abort')
->with([
'page' => $page,
'bodyClass' => $page->code_name,
'meta' => $meta
])->render();
// Return view with 404 not found header
return \Response::make($view, 404);
}
/**
*
*/
public function sitemap($page)
{
// Meta data
$meta = $this->metaDataService->get($page);
// Get sitemap items
$sitemap = \App::make('Komma\Seo\SitemapService')->getSitemap();
return \View::make('layouts.pages.sitemap')
->with([
'page' => $page,
'bodyClass' => $page->code_name,
'meta' => $meta,
'items' => $sitemap->model->items
]);
}
}