File: D:/HostingSpaces/SBogers26/gripp.nu/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');
})
->where('languages.iso_2', '=', \App::getLocale())
->select('routes.route', 'page_translations.name', 'pages.code_name')
->where('pages.active', '=', 1)
->select('page_translations.name', 'routes.route', 'pages.id', 'pages.code_name')
->orderBy('pages.lft','asc');
// 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)
->where('languages.iso_2', '=', \App::getLocale())
->select('routes.route', 'page_translations.name', 'pages.code_name')
->where('pages.active', '=', 1)
->select('page_translations.*', 'pages.code_name')
->first();
}
/**
* Get all page links
* or if a code_name (array) isset get those pages
*
* @param null $code_name
* @return mixed
*/
public function getUrl($code_name = null){
dd('hier');
// 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')
->where('languages.iso_2', '=', \App::getLocale())
->select('routes.route', 'page_translations.name', 'pages.code_name')
->where('pages.active', '=', 1)
->where('pages.code_name', '!=', 'null');
if(is_array($code_name)){
$url = $url->whereIn('pages.code_name',$code_name);
return $url->get();
}
elseif($code_name == null){
return $url->get();
}
else{
$url = $url->where('pages.code_name', '=', $code_name);
return $url->first();
}
}
}