File: D:/HostingSpaces/SBogers10/beerten.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')
]);
}
}