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/debierbaron.komma.pro/app/Komma/Blog/BlogService.php
<?php

/**
 * Short description for the file.
 *
 * @author      Tim Van Samang <timvansamang@komma.pro>
 * @copyright   (c) 2012-2015, Komma Mediadesign
 */

namespace Komma\Blog;

use Komma\Kms\Blog\Models\Blog;
use Komma\Kms\Images\ImageService;
use Komma\Kms\Images\Models\Image;

class BlogService
{
    public $language_id = 104;

    public function getBlog($blogId)
    {
        //Get the blog item
        if (!$blog = Blog::where('id', '=', $blogId)
            ->where('active', '=', 1)
            ->where('date', '<=', \Carbon\Carbon::now()->toDateTimeString())
            ->with('translations')
            ->whereHas('translations', function ($query) {
                //Todo: taal ophalen
                $query->where('language_id', '=', $this->language_id);
            })
            ->first()
        ) return false;

        $blog = $this->prepareBlogItem($blog);

        return $blog;
    }

    public function getBlogItems()
    {
        $blogItems = Blog::where('active', '=', 1)
            ->where('date', '<=', \Carbon\Carbon::now()->toDateTimeString())
            ->with('translations')
            ->whereHas('translations', function ($query) {
                //Todo: taal ophalen
                $query->where('language_id', '=', $this->language_id);
            })
            ->orderBy('lft')
            ->get();
        foreach ($blogItems as $key => $blogItem) {
            $blogItems[$key] = $this->prepareBlogItem($blogItem);
        }
        return $blogItems;
    }

    private function prepareBlogItem($blogItem)
    {
        $translations = $blogItem->translations->keyBy('language_id');
        $blogItem->name = $translations[$this->language_id]->name;
        $blogItem->short_description = $translations[$this->language_id]->short_description;
        $blogItem->description = $translations[$this->language_id]->description;
        $blogItem->meta_title = $translations[$this->language_id]->meta_title;
        $blogItem->meta_description = $translations[$this->language_id]->meta_description;

        //Get images
        $blogItem->images = $this->getImages($blogItem);

        //Get the routes
        $blogItem->route = null;
        if ($route = $translations[$this->language_id]->routes->first()) $blogItem->route = $route->route;

        return $blogItem;
    }


    private function getImages($blog)
    {

        $imageRecords = Image::where('imageble_type', get_class($blog))->where('imageble_id', $blog->id)
            ->orderBy('sort_order')
            ->get();
        $images = $imageRecords->toArray();
        return $images;
    }
}