File: D:/HostingSpaces/SBogers10/momsecurity.komma.nl/app/Components/Types/ReferenceCards.php
<?php
namespace App\Components\Types;
use App\Components\ComponentTypes;
use App\Services\Models\Service;
use App\Testimonials\Models\Testimonial;
use Komma\KMS\Components\Component\ViewComponent;
use Komma\KMS\Components\ComponentType\Types\AbstractComponentType;
use Komma\KMS\Core\Attributes\Documents;
use Komma\KMS\Core\Attributes\Models\ImageProperty;
use Komma\KMS\Core\Attributes\MultiSelect;
use Komma\KMS\Core\Attributes\Select;
use Komma\KMS\Core\Attributes\Seperator;
use Komma\KMS\Core\Attributes\TextArea;
use Komma\KMS\Core\Attributes\TextField;
use Komma\KMS\Core\ModelServiceInterface;
class ReferenceCards extends AbstractComponentType
{
protected int $id = ComponentTypes::REFERENCE_CARDS;
protected string $name = 'reference-cards';
public function defineAttributesAndTabs()
{
/** @var ModelServiceInterface $testimonialModels */
$testimonialModels = app(ModelServiceInterface::class);
$testimonialModels->setModelClassName(Testimonial::class);
$this->addItems([
(new TextField())
->setReference('title' )
->setLabelText(__('KMS::attributes/components.title')),
(new Seperator()),
(new MultiSelect())
->setItems($testimonialModels->getOptionsForSelect()->toArray())
->setLabelText('Referenties')
->setMaxItemsToSelect(3)
->enableSortable()
->canBeLinkedWith(Testimonial::class)
->setReference('references'),
]);
}
public function prepare(ViewComponent $viewComponent)
{
$viewComponent->references->load('translation', 'images');
}
}