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/reiskick.komma.nl/app/Countries/Kms/CountryModelService.php
<?php


namespace App\Countries\Kms;


use App\Countries\Country;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\App;
use Komma\KMS\Core\Attributes\Models\SelectOption;
use Komma\KMS\Core\Attributes\Models\SelectOptionInterface;
use Komma\KMS\Core\ModelService;
use Komma\KMS\Core\Sections\SidebarListItem;

class CountryModelService extends ModelService
{
    public function __construct()
    {
        parent::__construct();
        $this->modelClassName = Country::class;
    }

    public function getContinentsForSelect(): Collection
    {
        $continentOptions = collect();
        foreach (__('countries.continents') as $continent) {
            $continentOptions->push(
                (new SelectOption())
                    ->setValue($continent['value'])
                    ->setContent($continent['name'])
                    ->setHtmlContent($continent['name'])
            );
        }
        return $continentOptions;
    }

    public function getHomePositionsForSelect(): Collection
    {
        $homeGridPositionOptions = collect([
            (new SelectOption())
                ->setValue(null)
                ->setContent('Niet op home')
                ->setHtmlContent('Niet op home'),
        ]);
        for ($i = 1; $i <= 6; $i++) {
            $selectOption = (new SelectOption())
                ->setValue($i)
                ->setContent($i)
                ->setHtmlContent($i);
            $homeGridPositionOptions->push($selectOption);
        }
        return $homeGridPositionOptions;
    }

    public function getWorldMapIsoOptions(): Collection
    {
        $mapIsoIds = [
            'AD',
            'AE',
            'AF',
            'AI',
            'AL',
            'AM',
            'AO',
            'AR',
            'AT',
            'AU',
            'AW',
            'AZ',
            'BA',
            'BD',
            'BE',
            'BF',
            'BG',
            'BI',
            'BJ',
            'BL',
            'BM',
            'BN',
            'BO',
            'BQ',
            'BR',
            'BT',
            'BW',
            'BY',
            'BZ',
            'CA',
            'CD',
            'CF',
            'CG',
            'CH',
            'CI',
            'CL',
            'CM',
            'CN',
            'CO',
            'CR',
            'CU',
            'CW',
            'CX',
            'CY',
            'CZ',
            'DE',
            'DJ',
            'DK',
            'DO',
            'DZ',
            'EC',
            'EE',
            'EG',
            'EH',
            'ER',
            'ES',
            'ET',
            'FI',
            'FO',
            'FR',
            'GA',
            'GE',
            'GF',
            'GH',
            'GL',
            'GM',
            'GN',
            'GQ',
            'GR',
            'GT',
            'GW',
            'GY',
            'HK',
            'HN',
            'HR',
            'HT',
            'HU',
            'ID',
            'IE',
            'IL',
            'IN',
            'IO',
            'IQ',
            'IR',
            'IS',
            'IT',
            'JM',
            'JO',
            'JP',
            'KE',
            'KG',
            'KH',
            'KN',
            'KP',
            'KR',
            'KW',
            'KY',
            'KZ',
            'LA',
            'LB',
            'LI',
            'LK',
            'LR',
            'LS',
            'LT',
            'LU',
            'LV',
            'LY',
            'MA',
            'MC',
            'MD',
            'ME',
            'MF',
            'MG',
            'MK',
            'ML',
            'MN',
            'MO',
            'MR',
            'MS',
            'MV',
            'MW',
            'MX',
            'MY',
            'MY-2',
            'MZ',
            'NE',
            'NF',
            'NG',
            'NI',
            'NL',
            'NO',
            'NP',
            'NR',
            'NZ',
            'NZ-2',
            'OM',
            'PA',
            'PE',
            'PG',
            'PH',
            'PK',
            'PL',
            'PM',
            'PR',
            'PS',
            'PT',
            'PW',
            'PY',
            'QA',
            'RO',
            'RS',
            'RU',
            'RW',
            'SA',
            'SD',
            'SE',
            'SG',
            'SH',
            'SK',
            'SL',
            'SL-2',
            'SM',
            'SN',
            'SO',
            'SR',
            'SS',
            'ST',
            'SV',
            'SX',
            'SY',
            'SZ',
            'TC',
            'TD',
            'TG',
            'TH',
            'TJ',
            'TL',
            'TM',
            'TN',
            'TR',
            'TT',
            'TW',
            'TZ',
            'UA',
            'UG',
            'UK',
            'US',
            'UY',
            'UZ',
            'VA',
            'VE',
            'VG',
            'VI',
            'VN',
            'XK',
            'YE',
            'ZA',
            'ZM',
            'ZW',
        ];

        $worldMapIsoOptions = collect([
            (new SelectOption())
                ->setValue(null)
                ->setContent('Niet op de kaart')
                ->setHtmlContent('Niet op de kaart'),
        ]);

        foreach ($mapIsoIds as $mapIsoId) {
            $selectOption = (new SelectOption())
                ->setValue($mapIsoId)
                ->setContent($mapIsoId)
                ->setHtmlContent($mapIsoId);
            $worldMapIsoOptions->push($selectOption);
        }

        return $worldMapIsoOptions;
    }

    public function getOptionsForSelect(bool $allowNullableSelectOption = false)
    {
        $selectOptions = collect();

        if($allowNullableSelectOption){
            $selectOption = (App::make(SelectOptionInterface::class))
                ->setContent(__('KMS::global.none'))
                ->setHtmlContent(__('KMS::global.none'))
                ->setValue(null);
            $selectOptions->push($selectOption);
        }

        /** @var $sidebarListItems SidebarListItem[] */
        $sidebarListItems = $this->getModelsForSideBar();

        $models = $this->modelClassName::all();
        foreach ($sidebarListItems as $sidebarListItem) {
            $model = $models->where('id', $sidebarListItem->getId())->first();
            if ( ! $model) {
                continue;
            }

            /** @var SelectOptionInterface $selectOption */
            $selectOption = (App::make(SelectOptionInterface::class))
                ->setContent($model->getDisplayName())
                ->setHtmlContent($model->getDisplayName())
                ->setValue($model->id);

            $selectOptions->push($selectOption);
        }
        return $selectOptions;
    }
}