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/SBogers96/smilefotografie.nl/app/Komma/Pages/PageRepository.php
<?php


namespace Komma\Pages;


class PageRepository
{
    /**
     * Return all pages
     *
     * @param array $in
     * @param array $with
     * @return mixed
     */
    public function pages($in = [], $with = [])
    {
        // 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');
            })
            ->orderBy('pages.lft','asc');

        // With images
        if(in_array('images',$with))
        {
            $pages = $pages->leftJoin('images', function($join){
                $join->on('pages.id', '=', 'images.imageble_id')
                    ->where('images.imageble_type', '=', 'Komma\Kms\Pages\Models\Page');
            });
        }

        // Get a selection
        if( ! empty($in))
        {
            $pages = $pages->whereIn('pages.code_name',$in);
        }

        return $pages->get();
    }

    /**
     * Return a page by its id
     *
     * @param $id
     * @return mixed
     */
    public function page($id)
    {
        return \DB::table('pages')

            // Join translations
            ->leftJoin(
                'page_translations',
                'page_translations.page_id', '=', 'pages.id')

            // Join images
            ->leftJoin('images', function($join){
                $join->on('pages.id', '=', 'images.imageble_id')
                    ->where('images.imageble_type', '=', 'Komma\Kms\Pages\Models\Page');
            })

            ->leftJoin('routes', function($join){
                $join->on('page_translations.id', '=', 'routes.routable_id')
                    ->where('routes.routable_type', '=', 'Komma\Kms\Pages\Models\PageTranslation');
            })

            ->where('pages.id','=',$id)
            ->first();
    }

    /**
     * Return a page by its slug
     *
     * @param $id
     * @return mixed
     */
    public function pageByCodeName($codeName)
    {
        return \DB::table('pages')

            // Join translations
            ->leftJoin(
                'page_translations',
                'page_translations.page_id', '=', 'pages.id')

            // Join images
            ->leftJoin('images', function($join){
                $join->on('pages.id', '=', 'images.imageble_id')
                    ->where('images.imageble_type', '=', 'Komma\Kms\Pages\Models\Page');
            })

            ->leftJoin('routes', function($join){
                $join->on('page_translations.id', '=', 'routes.routable_id')
                    ->where('routes.routable_type', '=', 'Komma\Kms\Pages\Models\PageTranslation');
            })

            ->where('pages.code_name','=',$codeName)
            ->first();
    }

    /**
     * Return a page by its id
     *
     * @param $id
     * @return mixed
     */
    public function imagesByPageId($id)
    {
        return \DB::table('images')
            ->where('images.imageble_type', '=', 'Komma\Kms\Pages\Models\Page')
            ->where('images.imageble_id','=',$id)
            ->orderBy('sort_order','asc')
            ->get();
    }
}