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/beat-the-barn.komma.nl/vendor/komma/kms/src/Sites/Kms/SiteSection.php
<?php

namespace Komma\KMS\Sites\Kms;

use Komma\KMS\Core\Attributes\Attribute;
use Komma\KMS\Core\Attributes\MultiSelect;
use Komma\KMS\Core\Attributes\TextField;
use Komma\KMS\Core\Attributes\Title;
use Komma\KMS\Core\Sections\Section;
use Komma\KMS\Globalization\Languages\Kms\LanguageService;
use Illuminate\Database\Eloquent\Model;

final class SiteSection extends Section
{

    public function defineAttributesAndTabs(Model $currentModel = null): void
    {
        $languageOptionsModels = LanguageService::getAvailableLanguagesForSitesAsSelectOptions();

        $this->tabs->makeTab()->addItems([
            (new Title())
            ->setLabelText(__('KMS::global.information')),

            (new TextField())
                ->setReference('name')
                ->setLabelText(__('KMS::global.name'))
                ->setReadOnly(false)
                ->setRules('required|min:3'),

            (new TextField())
                ->setReference('slug')
                ->setLabelText(__('KMS::sites.slug'))
                ->setReadOnly(false)
                ->setRules([
                    'required',
                    'min:3',
                    'regex:/^[a-z0-9_-]*$/',
                    ($currentModel) ? 'unique:sites,slug,'.$currentModel->id : 'unique:sites,slug'
                ])
                ->setExplanation(__('KMS::sites.slug_explanation')),

            (new MultiSelect())
                ->setItems($languageOptionsModels)
                ->setLabelText(__('KMS::sites.languages'))
                ->mapValueFrom(Attribute::ValueFromModelHasManyRelation, 'languages|id')
        ]);

    }
}