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/rentman2019.komma.pro/app/Komma/Languages/Kms/LanguageService.php
<?php

namespace App\Komma\Languages\Kms;

/**
 * @author      Komma <info@komma.pro>
 * @copyright   (c) 2012-2016, Komma
 */

use App\Komma\Kms\Core\Attributes\Models\SelectOption;
use App\Komma\Languages\Models\Language;

class LanguageService
{
    /**
     * The Eloquent User Object.
     *
     * @var Language
     */
    public $model;

    /**
     * Constructor.
     *
     * @param Language $model
     */
    public function __construct(Language $model)
    {
        $this->model = $model;
    }

    public function find($id)
    {
        return $this->model->find($id);
    }

    public function findBySlug($slug)
    {
        return $this->model->whereSlug($slug)->first();
    }

    public function findAll()
    {
        return $this->model->all();
    }

    public function getLanguagesForSelect()
    {
        $models = $this->model->with('sites')->get();
        $entities = [];
        foreach ($models as $model) {
            if (count($model->sites) == 0) {
                continue;
            }

            $entities[] = (new SelectOption())
                ->setHtmlContent($model->name)
                ->setContent($model->name)
                ->setValue($model->id);
        }

        return $entities;
    }

    /**
     * Returns a query builder that returns the available languages
     *
     * @return Language
     */
    public static function getAvailableLanguages()
    {
        $availableLanguageIds = \Config::get('kms.main.available_language_ids');
        $availableLanguage = Language::whereIn('id', $availableLanguageIds);

        return $availableLanguage;
    }

    /**
     * @return SelectOption[]
     */
    public static function getAvailableLanguagesForSitesAsSelectOptions()
    {
        $availableLanguages = self::getAvailableLanguages()->get();

        $entities = [];

        foreach ($availableLanguages as $language) {
            $entities[] = (new SelectOption())
                ->setValue($language->id)
                ->setContent($language->id)
                ->setHtmlContent(strtoupper($language->iso_2).' - '.$language->name);
        }

        return $entities;
    }
}