File: D:/HostingSpaces/SBogers10/topswtw.komma.pro/app/controllers/PostController.php
<?php
use KommaApp\Shop\Pages\PageService;
class PostController extends \BaseController
{
private $postService;
private $pageService;
public function __construct(\KommaApp\Shop\Posts\PostService $postService, PageService $pageService)
{
$this->postService = $postService;
$this->pageService = $pageService;
}
/**
* @param $param
* @param $route
* @param null $method
* @return mixed|void
*/
public function routeProcessor($param, $route, $method = null)
{
if(!empty($param)) {
$method = 'show';
// dd($param, $method);
}
return parent::routeProcessor($param, $route, $method);
}
/**
* Index page
*/
public function index()
{
$pageId = $this->routeData->routable->page_id;
$node = $this->pageService->getNodeById($pageId);
$this->postService->setLanguageAndShop($this->routeData->routable->language_id, \Shop::getShop()->id);
$posts = $this->postService->getPosts();
return \View::make(viewPrefix() .'pages.posts_index')
->with([
'entity' => $node,
'posts' => $posts,
]);
}
public function show()
{
$pageId = $this->routeData->routable->page_id;
$node = $this->pageService->getNodeById($pageId);
$segments = \Request::segments();
if(sizeof($segments) != 3) \App::abort(404); // Should not be possible, but throw 404 if there are less then 3 segements here
// Grab the post slug, should be the on the 2 index of the array
$postSlug = $segments[2];
$this->postService->setLanguageAndShop($this->routeData->routable->language_id, \Shop::getShop()->id);
$post = $this->postService->getPostBySlug($postSlug);
if(!isset($post)) \App::abort(404);
return \View::make(viewPrefix() .'pages.posts_show')
->with([
'entity' => $node,
'post' => $post,
]);
}
}