<?php declare(strict_types=1);
namespace MoorlForms\Core\Content\Element\Selection;
use MoorlForms\Core\Content\Element\ElementCollection;
use MoorlForms\Core\Content\Element\ElementEntity;
use MoorlForms\Core\Content\Element\Type\ElementTypeExtension;
use Shopware\Core\Framework\DataAbstractionLayer\Entity;
use Shopware\Core\System\SalesChannel\SalesChannelContext;
use Shopware\Core\System\SystemConfig\SystemConfigService;
use Symfony\Component\HttpFoundation\Request;
class ElementSelectionExtension implements ElementSelectionInterface
{
protected SalesChannelContext $salesChannelContext;
protected SystemConfigService $systemConfigService;
protected Request $request;
public function getName(): string
{
return "";
}
public function getOptions(): array
{
return [];
}
public function validate(ElementEntity $element, ?array $tree = null): void
{
}
public function init(ElementEntity $element, ElementCollection $elements): void
{
}
protected function createOption(Entity $item, string $parentId, ?string &$afterId = null): ElementEntity
{
/** @var ElementEntity $new */
$new = ElementEntity::createFrom($item);
$new->setType(ElementTypeExtension::BRANCH_OPTION);
$new->setTechnicalName($item->getId());
$new->setParentId($parentId);
$new->setAfterId($afterId);
$new->setId(md5($item->getId().$parentId));
$afterId = $new->getId();
return $new;
}
public function jsonSerialize(): array
{
return [
'name' => $this->getName(),
'options' => $this->getOptions()
];
}
/**
* @param SalesChannelContext $salesChannelContext
*/
public function setSalesChannelContext(SalesChannelContext $salesChannelContext): void
{
$this->salesChannelContext = $salesChannelContext;
}
/**
* @param SystemConfigService $systemConfigService
*/
public function setSystemConfigService(SystemConfigService $systemConfigService): void
{
$this->systemConfigService = $systemConfigService;
}
/**
* @param Request $request
*/
public function setRequest(Request $request): void
{
$this->request = $request;
}
}