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;
}
}