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/SBogers10/zuiderbos.komma.pro/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',
                'post_translations.post_id',
                'post_translations.name as post_name'
            );

        // Join other tables
        $query = $this->joinTranslation($query, 'page_translations', 'Komma\Kms\Pages\Models\PageTranslation');
        $query = $this->joinTranslation($query, 'post_translations', 'Komma\Kms\Posts\Models\PostTranslation');
        $query->join('languages', 'languages.id', '=', 'page_translations.language_id');
        $query->where('languages.iso_2', '=', \App::getLocale());


        // Get routes
        return $query->where('sitemap_weight', '>=', $minWeight)
            ->orderBy('routes.route', 'asc')
            ->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);
        });
    }
}