src/Core/Content/Cms/DataResolver/Element/FormCmsElementResolver.php line 38

  1. <?php declare(strict_types=1);
  2. namespace Shopware\Core\Content\Cms\DataResolver\Element;
  3. use Shopware\Core\Content\Cms\Aggregate\CmsSlot\CmsSlotEntity;
  4. use Shopware\Core\Content\Cms\DataResolver\CriteriaCollection;
  5. use Shopware\Core\Content\Cms\DataResolver\ResolverContext\ResolverContext;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Search\Criteria;
  7. use Shopware\Core\Framework\Log\Package;
  8. use Shopware\Core\System\Salutation\SalesChannel\AbstractSalutationRoute;
  9. use Shopware\Core\System\Salutation\SalutationEntity;
  10. use Symfony\Component\HttpFoundation\Request;
  11. #[Package('content')]
  12. class FormCmsElementResolver extends AbstractCmsElementResolver
  13. {
  14.     /**
  15.      * @internal
  16.      */
  17.     public function __construct(private readonly AbstractSalutationRoute $salutationRoute)
  18.     {
  19.     }
  20.     public function getType(): string
  21.     {
  22.         return 'form';
  23.     }
  24.     public function collect(CmsSlotEntity $slotResolverContext $resolverContext): ?CriteriaCollection
  25.     {
  26.         return null;
  27.     }
  28.     public function enrich(CmsSlotEntity $slotResolverContext $resolverContextElementDataCollection $result): void
  29.     {
  30.         $context $resolverContext->getSalesChannelContext();
  31.         $salutations $this->salutationRoute->load(new Request(), $context, new Criteria())->getSalutations();
  32.         $salutations->sort(fn (SalutationEntity $aSalutationEntity $b) => $b->getSalutationKey() <=> $a->getSalutationKey());
  33.         $slot->setData($salutations);
  34.     }
  35. }