vendor/pimcore/pimcore/lib/Twig/Extension/Templating/Inc.php line 62

Open in your IDE?
  1. <?php
  2. /**
  3. * Pimcore
  4. *
  5. * This source file is available under two different licenses:
  6. * - GNU General Public License version 3 (GPLv3)
  7. * - Pimcore Commercial License (PCL)
  8. * Full copyright and license information is available in
  9. * LICENSE.md which is distributed with this source code.
  10. *
  11. * @copyright Copyright (c) Pimcore GmbH (http://www.pimcore.org)
  12. * @license http://www.pimcore.org/license GPLv3 and PCL
  13. */
  14. namespace Pimcore\Twig\Extension\Templating;
  15. use Pimcore\Http\Request\Resolver\EditmodeResolver;
  16. use Pimcore\Model\Document\PageSnippet;
  17. use Pimcore\Templating\Renderer\IncludeRenderer;
  18. use Pimcore\Twig\Extension\Templating\Traits\HelperCharsetTrait;
  19. use Twig\Extension\RuntimeExtensionInterface;
  20. class Inc implements RuntimeExtensionInterface
  21. {
  22. use HelperCharsetTrait;
  23. /**
  24. * @var IncludeRenderer
  25. */
  26. protected $includeRenderer;
  27. /**
  28. * @var EditmodeResolver
  29. */
  30. protected $editmodeResolver;
  31. /**
  32. * @param IncludeRenderer $includeRenderer
  33. * @param EditmodeResolver $editmodeResolver
  34. */
  35. public function __construct(IncludeRenderer $includeRenderer, EditmodeResolver $editmodeResolver)
  36. {
  37. $this->includeRenderer = $includeRenderer;
  38. $this->editmodeResolver = $editmodeResolver;
  39. }
  40. /**
  41. * @param PageSnippet|int|string $include
  42. * @param array $params
  43. * @param bool $cacheEnabled
  44. * @param bool|null $editmode
  45. *
  46. * @return string
  47. */
  48. public function __invoke($include, array $params = [], $cacheEnabled = true, $editmode = null)
  49. {
  50. if (null === $editmode) {
  51. $editmode = $this->editmodeResolver->isEditmode();
  52. }
  53. return $this->includeRenderer->render($include, $params, $editmode, $cacheEnabled);
  54. }
  55. }