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