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/Routes/RouteRepository.php
<?php


namespace Komma\Routes;


class RouteRepository
{
    /**
     * @param array $groups
     * @param float $weight_from
     */
    public function routesForSitemap($minWeight = 0.1)
    {

        // Select from routes
        $query = \DB::table('routes')
            ->select('routes.*',
                'page_translations.page_id',
                'page_translations.name as page_name',

                'business_album_translations.business_album_id',
                'business_album_translations.name as business_album_name',

                'private_album_translations.private_album_id',
                'private_album_translations.name as private_album_name',

                'free_work_album_translations.free_work_album_id',
                'free_work_album_translations.name as free_work_album_name'
            );

        // Join other tables
        $query = $this->joinTranslation($query, 'page_translations', 'Komma\Kms\Pages\Models\PageTranslation');

        $query = $this->joinTranslation($query, 'business_album_translations', 'Komma\Kms\BusinessAlbums\Models\BusinessAlbumTranslation');

        $query = $this->joinTranslation($query, 'private_album_translations', 'Komma\Kms\PrivateAlbums\Models\PrivateAlbumTranslation');

        $query = $this->joinTranslation($query, 'free_work_album_translations', 'Komma\Kms\FreeWorkAlbums\Models\FreeWorkAlbumTranslation');

        // Get routes
        return $query->where('sitemap_weight', '>=', $minWeight)
            ->orderBy('routes.sitemap_weight', 'desc')
            ->groupBy('route')
            ->get();
    }

    /**
     * @param $query
     * @return mixed
     */
    private function joinTranslation($query, $table, $type)
    {
        return $query->leftJoin($table, function($join) use ($table,$type)
        {
            $join->on($table . '.id', '=', 'routes.routable_id')
                 ->where('routes.routable_type', '=', $type);
        });
    }
}