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/komma.pro/app/KommaApp/Posts/PostController.php
<?php

namespace App\KommaApp\Posts;

use App\Http\Controllers\Controller;
use App\KommaApp\Blocks\BlockService;
use App\KommaApp\Categories\Models\Category;
use App\KommaApp\Posts\Models\Post;

class PostController extends Controller
{
    /**
     * @var PostService
     */
    private $postService;
    /**
     * @var BlockService
     */
    private $blockService;

    /**
     * PostController constructor.
     * @param PostService $postService
     * @param BlockService $blockService
     */
    public function __construct(PostService $postService, BlockService $blockService)
    {
        parent::__construct();
        $this->postService = $postService;
        $this->blockService = $blockService;
        $this->blockService->setSubFolder('posts');
    }

    /**
     * @return \Illuminate\Contracts\View\View
     */
    public function index()
    {
        // Get page information
        $page = $this->pageService->getPageByCodeName('posts');

        // Get posts, if there are no blog-posts return a message
        $posts = $this->postService->all();
        $posts->withPath('/blog');

        // Check if there are posts
        if($posts->isEmpty()) return \View::make($this->baseViewPath . 'pages.posts.fallback');

        // Separate featured and non-featured posts
        $featuredPosts = $this->postService->featured($posts);
        $nonFeaturedPosts = $this->postService->nonFeatured($posts);

        $featuredPosts->isNotEmpty() ? $headerPost = $featuredPosts->first() : $headerPost = $nonFeaturedPosts->first();

        // Return view
        return \View::make($this->baseViewPath . 'pages.posts.index',[
            'page' => $page,
            'posts' => $posts,
//            'featuredPosts' => $featuredPosts,
//            'nonFeaturedPosts' => $nonFeaturedPosts,
//            'headerPost' => $headerPost,
            'namespace' => 'posts',
        ]);
    }

    /**
     * @param Post $post
     * @return \Illuminate\Contracts\View\View
     */
    public function show(Post $post)
    {
        // Load translations and sites
        $post->load('translation','sites','categories','author','author.images');

        // This checks if the post belongs to the set site
        if(! $post->sites->contains(\App::getSite())) throw abort(404);

        $relatedPosts = $this->postService->relatedPosts($post);

        // Decode dynamic blocks
        $post->blocks = $this->blockService->decode($post->translation->description);

        // Return view
        return \View::make($this->baseViewPath . 'pages.posts.show',[
            'post' => $post,
            'relatedPosts' => $relatedPosts,
            'namespace' => 'post',
        ]);
    }
}