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/SBogers85/equichecker.com/app/KommaApp/Kms/Core/Kms.php
<?php
/**
 *
 *
 * @author      Komma <info@komma.pro>
 * @copyright   (c) 2012-2016, Komma Mediadesign
 */

namespace KommaApp\Kms\Core;

use Illuminate\Routing\Router;
use Illuminate\Support\Facades\Lang;
use KommaApp\Languages\Models\Language;
use KommaApp\Languages\Models\SiteLanguage;
use KommaApp\Sites\Kms\SitesRepository;
use KommaApp\Sites\Models\Site;

class Kms
{
    protected $site;

    protected $router;
    protected $sitesRepository;

    protected $sites;
    protected $siteLanguages = [];

    protected $sitesIndex = [];
    protected $siteLanguageIdIndex;
    protected $siteLanguageIndex;

    function __construct(Router $router, SitesRepository $sitesRepository)
    {
        $this->router = $router;
        $this->sitesRepository = $sitesRepository;

        $siteSlug = 'komma';
        if ($this->router->current()) {
            $siteSlug = $this->router->current()->getParameter('site');
        }
        $this->site = $this->sitesRepository->setSiteByRoute();
    }

    public function getDefaultLanguageId()
    {
        if ($this->site) {
            return $this->site->default_language_id;
        }
        return \Config::get('kms.main.defaultLanguageId');
    }

    public function getSiteDefaultLanguageId($siteId)
    {
        return $this->getSite($siteId)->default_language_id;
    }

    public function getDefaultLanguage()
    {
        return Language::where('iso_2', '=', \App::getLocale())->first();
    }

    public function getCurrentSiteId()
    {
        if ($this->site = $this->sitesRepository->setSiteByRoute()) {
            return $this->site->id;
        }
        return null;
    }

    public function getCurrentSiteSlug()
    {
        if ($this->site = $this->sitesRepository->setSiteByRoute()) {
            return $this->site->slug;
        }
        return null;
    }

    public function getSites()
    {
        if (!$this->sites)
            $this->sites = $this->sitesRepository->findAll();

        return $this->sites;
    }

    public function getSite($siteId)
    {
        if (!isset($this->sitesIndex[$siteId]))
            $this->sitesIndex[$siteId] = $this->sitesRepository->find($siteId);
        return $this->sitesIndex[$siteId];
    }

    public function getCurrentSiteLanguages()
    {
        return $this->getSiteLanguages($this->site->id);
    }

    public function getCurrentSiteLanguageIds()
    {
        return $this->getSiteLanguageIds($this->site->id);
    }

    public function getSiteLanguageIds($siteId)
    {
        if (!isset($this->siteLanguageIdIndex[$siteId])) {
            $this->siteLanguageIdIndex[$siteId] = \DB::table('site_language')->where('site_id', $siteId)->lists('language_id');
        }
        return $this->siteLanguageIdIndex[$siteId];
    }

    public function getSiteLanguages($siteId)
    {
        $t = Site::find($siteId);
        return $t->languages;
    }

    public function getAvailableLanguages()
    {
        return SiteLanguage::with('language')->groupBy('language_id')->get()->pluck('language');
    }
}