File: D:/HostingSpaces/SBogers10/straffer.komma.nl/app/Komma/Pages/PageRepository.php
<?php
namespace Komma\Pages;
use Illuminate\Support\Facades\DB;
class PageRepository {
/**
* Return all pages
*
* @param array $in
* @param array $with
* @return mixed
*/
public function pages($in = [])
{
// Get pages with translations and routes
$pages = \DB::table('pages')
->leftJoin(
'page_translations',
'page_translations.page_id', '=', 'pages.id')
->leftJoin('routes', function($join){
$join->on('page_translations.id', '=', 'routes.routable_id')
->where('routes.routable_type', '=', 'Komma\Kms\Pages\Models\PageTranslation');
})
->select('page_translations.name', 'routes.route', 'pages.id', 'pages.code_name')
->orderBy('pages.lft','asc')
->where('lft', '!=', 1);
// Get a selection
if( ! empty($in))
{
$pages = $pages->whereIn('pages.code_name',$in);
}
return $pages->get();
}
/**
* Get page content
*
* @param $id
* @return array
*/
public function getPageContent($id){
// Get page content
return $page = \DB::table('pages')
->leftJoin(
'page_translations',
'page_translations.page_id', '=', 'pages.id')
->where('pages.id' , '=', $id)
->select('page_translations.*', 'pages.code_name')
->first();
}
public function getUrl($code_name){
// Get pages with translations and routes
$url = \DB::table('pages')
->leftJoin(
'page_translations',
'page_translations.page_id', '=', 'pages.id')
->leftJoin('routes', function($join){
$join->on('page_translations.id', '=', 'routes.routable_id')
->where('routes.routable_type', '=', 'Komma\Kms\Pages\Models\PageTranslation');
})
->select('routes.route', 'page_translations.name', 'pages.code_name');
if(is_array($code_name)){
$url = $url->whereIn('pages.code_name',$code_name);
return $url->get();
}
else{
$url = $url->where('pages.code_name', '=', $code_name);
return $url->first();
}
}
}