File: D:/HostingSpaces/SBogers10/reiskick.komma.nl/app/Components/Types/Overnights.php
<?php
namespace App\Components\Types;
use App\Components\ComponentTypes;
use App\Hotels\Kms\HotelSection;
use App\Hotels\Models\Hotel;
use App\Overnights\Kms\OvernightService;
use App\Overnights\Models\Overnight;
use App\ToDos\Models\ToDo;
use Komma\KMS\Components\Component\ViewComponent;
use Komma\KMS\Components\ComponentType\Types\AbstractComponentType;
use Komma\KMS\Core\Attributes\MultiSelect;
use Komma\KMS\Core\Attributes\TextField;
use Komma\KMS\Core\ModelService;
class Overnights extends AbstractComponentType
{
protected int $id = ComponentTypes::OVERNIGHTS;
protected string $name = 'overnights';
public function defineAttributesAndTabs()
{
/** @var ModelService $selectService */
$selectService = app()->make(OvernightService::class);
$selectServiceOptions = $selectService->getComponentSelectOptions();
$this->addItems([
(new TextField())
->setReference('title')
->setLabelText(__('KMS::attributes/components.title')),
(new MultiSelect())
->setReference('options')
->enableSortable()
->setLabelText('Overnachtingen')
->setItems($selectServiceOptions)
->setMaxItemsToSelect(8)
->canBeLinkedWith(Overnight::class),
]);
}
public function prepare(ViewComponent $viewComponent)
{
$viewComponent->options->load('translation', 'images');
}
}