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;
}
}