diff --git a/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php b/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php index fa4944381b858..21bdca732b606 100644 --- a/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php +++ b/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php @@ -56,7 +56,7 @@ public function getData(string $blockIdentifier): array ); } - $renderedContent = $this->widgetFilter->filter($block->getContent()); + $renderedContent = $this->widgetFilter->filterDirective($block->getContent()); $blockData = [ BlockInterface::BLOCK_ID => $block->getId(), diff --git a/app/code/Magento/Widget/Model/Template/FilterEmulate.php b/app/code/Magento/Widget/Model/Template/FilterEmulate.php index 9e3b571587a50..4312003c7f34e 100644 --- a/app/code/Magento/Widget/Model/Template/FilterEmulate.php +++ b/app/code/Magento/Widget/Model/Template/FilterEmulate.php @@ -3,18 +3,44 @@ * Copyright © Magento, Inc. All rights reserved. * See COPYING.txt for license details. */ +declare(strict_types=1); + namespace Magento\Widget\Model\Template; +/** + * Class FilterEmulate + * + * @package Magento\Widget\Model\Template + */ class FilterEmulate extends Filter { /** * Generate widget with emulation frontend area * * @param string[] $construction - * @return string + * + * @return mixed|string + * @throws \Exception */ public function widgetDirective($construction) { return $this->_appState->emulateAreaCode('frontend', [$this, 'generateWidget'], [$construction]); } + + /** + * Filter the string as template with frontend area emulation + * + * @param string $value + * + * @return string + * @throws \Exception + */ + public function filterDirective($value) : string + { + return $this->_appState->emulateAreaCode( + \Magento\Framework\App\Area::AREA_FRONTEND, + [$this, 'filter'], + [$value] + ); + } }