vendor/ibexa/page-builder/src/lib/Event/Subscriber/ContentProxyCreateNoDraftSubscriber.php line 34

Open in your IDE?
  1. <?php
  2. /**
  3. * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4. * @license For full copyright and license information view LICENSE file distributed with this source code.
  5. */
  6. declare(strict_types=1);
  7. namespace Ibexa\PageBuilder\Event\Subscriber;
  8. use Ibexa\Contracts\AdminUi\Event\ContentProxyCreateEvent;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. use Symfony\Component\HttpFoundation\RedirectResponse;
  11. use Symfony\Component\Routing\RouterInterface;
  12. final class ContentProxyCreateNoDraftSubscriber implements EventSubscriberInterface
  13. {
  14. /** @var \Symfony\Component\Routing\RouterInterface */
  15. private $router;
  16. public function __construct(
  17. RouterInterface $router
  18. ) {
  19. $this->router = $router;
  20. }
  21. public static function getSubscribedEvents(): array
  22. {
  23. return [
  24. ContentProxyCreateEvent::class => ['createNoDraft', 50],
  25. ];
  26. }
  27. public function createNoDraft(ContentProxyCreateEvent $event)
  28. {
  29. $contentType = $event->getContentType();
  30. if ($contentType->hasFieldDefinitionOfType('ezlandingpage')) {
  31. $response = new RedirectResponse(
  32. $this->router->generate('ibexa.content.create_no_draft', [
  33. 'contentTypeIdentifier' => $contentType->identifier,
  34. 'language' => $event->getLanguageCode(),
  35. 'parentLocationId' => $event->getParentLocationId(),
  36. ])
  37. );
  38. $event->setResponse($response);
  39. $event->stopPropagation();
  40. }
  41. }
  42. }
  43. class_alias(ContentProxyCreateNoDraftSubscriber::class, 'EzSystems\EzPlatformPageBuilder\Event\Subscriber\ContentProxyCreateNoDraftSubscriber');