Moin Zusammen,
als Hinweis: Die grundsätzliche Herangehensweise ist mir beim Update auf die 6.3.1.0 auf die Füße gefallen, weshalb ich dank @Shyim nun Dependency Injection benutze. Falls noch mal wer hierdrüber stolpert:
class MyResolver
{
/** @var ProductSliderCmsElementResolver $elementResolver */
private $elementResolver;
public function __construct(ProductSliderCmsElementResolver $elementResolver)
{
$this->elementResolver = $elementResolver;
}
public function getType(): string
{
return $this->elementResolver->getType();
}
public function collect(CmsSlotEntity $slot, ResolverContext $resolverContext): ?CriteriaCollection
{
$criteriaCollection = new CriteriaCollection();
$config = $slot->getFieldConfig();
$products = $config->get('products');
if (!$products || $products->isMapped() || $products->getValue() === null) {
return null;
}
if ($products->isStatic() && $products->getValue()) {
$criteria = new Criteria($products->getValue());
$criteria->addAssociation('properties.group');
$criteria->addAssociation('manufacturer.media');
$criteriaCollection->add('product-slider' . '_' . $slot->getUniqueIdentifier(), ProductDefinition::class, $criteria);
}
return $criteriaCollection->all() ? $criteriaCollection : null;
}
public function enrich(CmsSlotEntity $slot, ResolverContext $resolverContext, ElementDataCollection $result): void
{
$this->elementResolver->enrich($slot, $resolverContext, $result);
}
}
services.xml Auszug:
Beste Grüße,
devnullroot