vendor/se7enxweb/exponential-platform-dxp-core/src/bundle/Core/Fragment/InlineFragmentRenderer.php line 47

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. namespace Ibexa\Bundle\Core\Fragment;
  7. use Ibexa\Core\MVC\Symfony\SiteAccess;
  8. use Ibexa\Core\MVC\Symfony\SiteAccess\SiteAccessAware;
  9. use Symfony\Component\HttpFoundation\Request;
  10. use Symfony\Component\HttpKernel\Controller\ControllerReference;
  11. use Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface;
  12. use Symfony\Component\HttpKernel\Fragment\InlineFragmentRenderer as BaseRenderer;
  13. use Symfony\Component\HttpKernel\Fragment\RoutableFragmentRenderer;
  14. class InlineFragmentRenderer extends BaseRenderer implements SiteAccessAware
  15. {
  16. /** @var \Symfony\Component\HttpKernel\Fragment\FragmentRendererInterface */
  17. private $innerRenderer;
  18. /** @var \Ibexa\Core\MVC\Symfony\SiteAccess */
  19. private $siteAccess;
  20. private SiteAccessSerializerInterface $siteAccessSerializer;
  21. public function __construct(
  22. FragmentRendererInterface $innerRenderer,
  23. SiteAccessSerializerInterface $siteAccessSerializer
  24. ) {
  25. $this->innerRenderer = $innerRenderer;
  26. $this->siteAccessSerializer = $siteAccessSerializer;
  27. }
  28. public function setFragmentPath($path)
  29. {
  30. if ($this->innerRenderer instanceof RoutableFragmentRenderer) {
  31. $this->innerRenderer->setFragmentPath($path);
  32. }
  33. }
  34. public function setSiteAccess(?SiteAccess $siteAccess = null)
  35. {
  36. $this->siteAccess = $siteAccess;
  37. }
  38. public function render($uri, Request $request, array $options = [])
  39. {
  40. if ($uri instanceof ControllerReference) {
  41. if ($request->attributes->has('siteaccess')) {
  42. /** @var \Ibexa\Core\MVC\Symfony\SiteAccess $siteAccess */
  43. $siteAccess = $request->attributes->get('siteaccess');
  44. $this->siteAccessSerializer->serializeSiteAccessAsControllerAttributes($siteAccess, $uri);
  45. }
  46. if ($request->attributes->has('semanticPathinfo')) {
  47. $uri->attributes['semanticPathinfo'] = $request->attributes->get('semanticPathinfo');
  48. }
  49. if ($request->attributes->has('viewParametersString')) {
  50. $uri->attributes['viewParametersString'] = $request->attributes->get('viewParametersString');
  51. }
  52. }
  53. return $this->innerRenderer->render($uri, $request, $options);
  54. }
  55. public function getName()
  56. {
  57. return $this->innerRenderer->getName();
  58. }
  59. }
  60. class_alias(InlineFragmentRenderer::class, 'eZ\Bundle\EzPublishCoreBundle\Fragment\InlineFragmentRenderer');