File: D:/HostingSpaces/SBogers10/signmania.komma.pro/app/Komma/Pages/PageController.php
<?php
namespace Komma\Pages;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Redirect;
use Komma\BaseController;
use Komma\Blocks\BlockService;
use Komma\Contact\ContactController;
use Komma\Pages\Models\Page;
use Komma\Posts\PostController;
use Komma\Sitemap\SitemapController;
class PageController extends \BaseController
{
protected $pageService;
protected $blockService;
protected $contactController;
protected $sitemapController;
protected $postController;
public function __construct(PageService $pageService, BlockService $blockService, ContactController $contactController, SitemapController $sitemapController, PostController $postController)
{
parent::__construct();
$this->pageService = $pageService;
$this->blockService = $blockService;
$this->contactController = $contactController;
$this->sitemapController = $sitemapController;
$this->postController = $postController;
}
public function show($id = 2)
{
//get content of page
$page = $this->pageService->getPageContent($id);
//Check if needed to send to other location/controller
if($page->code_name == 'sitemap') return $this->sitemapController->showSitemap($page);
if($page->code_name == 'contact') return $this->contactController->contactForm($page);
//get all page links
$links = $this->pageService->getAllRoutes();
//View is page unless view is defined
//$view = 'page';
//if(isset($page->view) && $page->view != '') $view = $page->view;
return \View::make($this->getViewName($page))
->with('page', $page)
->with('links', $links);
}
/**
* Return layout location
*
* @param Page $page
*/
private function getViewName(Page $page)
{
$prefix = 'layouts.pages.';
// Check if the depth is larger then a direct page
if($page->depth >= 2)
{
// Store parent in page
$page->parent = $page->getParent();
// Find which Letter and Color Type this page is by checking the index in the parent
$childrenCollection = $page->parent->findChildren();
$page->siblings = $childrenCollection;
$alphabet = range('A', 'Z');
foreach ($childrenCollection as $key => $child)
{
if($child->code_name == $page->code_name)
{
if(isset($childrenCollection[$key+1])) $page->next = $childrenCollection[$key+1];
else $page->next = $childrenCollection[0];
$page->letter = $alphabet[$key] . '.';
// Define color type on even or odd child
$page->colorType = 2;
if($key % 2 == 0) $page->colorType = 1;
}
}
return $prefix . $page->parent->code_name . '.show';
}
// Check if this page is in the array, because they have other file locations then default
elseif(in_array($page->code_name, ['services', 'ourStudio']))
{
$page->pageChildren = $page->findChildren();
return $prefix . $page->code_name . '.index';
}
elseif(in_array($page->code_name, ['disclaimer'])){
return $prefix . 'page';
}
else
{
return $prefix . $page->code_name;
}
}
}