custom/plugins/MoorlForms/src/Core/Content/Form/Cms/FbFormCmsElementResolver.php line 40

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace MoorlForms\Core\Content\Form\Cms;
  3. use MoorlForms\Core\Service\FbService;
  4. use MoorlForms\MoorlForms;
  5. use Shopware\Core\Content\Cms\Aggregate\CmsSlot\CmsSlotEntity;
  6. use Shopware\Core\Content\Cms\DataResolver\CriteriaCollection;
  7. use Shopware\Core\Content\Cms\DataResolver\Element\AbstractCmsElementResolver;
  8. use Shopware\Core\Content\Cms\DataResolver\Element\ElementDataCollection;
  9. use Shopware\Core\Content\Cms\DataResolver\ResolverContext\EntityResolverContext;
  10. use Shopware\Core\Content\Cms\DataResolver\ResolverContext\ResolverContext;
  11. class FbFormCmsElementResolver extends AbstractCmsElementResolver
  12. {
  13.     protected FbService $fbService;
  14.     public function __construct(FbService $fbService)
  15.     {
  16.         $this->fbService $fbService;
  17.     }
  18.     public function getType(): string
  19.     {
  20.         return 'moorl-fb-form';
  21.     }
  22.     public function collect(CmsSlotEntity $slotResolverContext $resolverContext): ?CriteriaCollection
  23.     {
  24.         return null;
  25.     }
  26.     public function enrich(CmsSlotEntity $slotResolverContext $resolverContextElementDataCollection $result): void
  27.     {
  28.         $config $slot->getFieldConfig()->get('form');
  29.         if ($config === null) {
  30.             return;
  31.         }
  32.         $form $this->fbService->initForm($config->getValue(), $resolverContext->getSalesChannelContext());
  33.         if ($form) {
  34.             $slot->setData($form);
  35.             if ($resolverContext instanceof EntityResolverContext) {
  36.                 $form->setHiddenFields([
  37.                     MoorlForms::ENTITY_NAME_KEY => $resolverContext->getDefinition()->getEntityName(),
  38.                     MoorlForms::ENTITY_ID_KEY => $resolverContext->getEntity()->getUniqueIdentifier()
  39.                 ]);
  40.             }
  41.         }
  42.     }
  43. }