From b94085ecc4a6a48c318a7c2465f69cfa44277606 Mon Sep 17 00:00:00 2001 From: Ievgenii Gryshkun Date: Fri, 27 Sep 2019 15:01:01 +0300 Subject: [PATCH 1/5] Magento 2.3.2 - PWA - graphQl fetching Issue for phtml file called in static block #960 --- .../Model/Resolver/DataProvider/Block.php | 27 +++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php b/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php index fa4944381b85..9cbb34a93910 100644 --- a/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php +++ b/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php @@ -11,6 +11,7 @@ use Magento\Cms\Api\Data\BlockInterface; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Widget\Model\Template\FilterEmulate; +use Magento\Framework\App\State; /** * Cms block data provider @@ -27,16 +28,24 @@ class Block */ private $widgetFilter; + /** + * @var State + */ + private $state; + /** * @param BlockRepositoryInterface $blockRepository * @param FilterEmulate $widgetFilter + * @param State $state */ public function __construct( BlockRepositoryInterface $blockRepository, - FilterEmulate $widgetFilter + FilterEmulate $widgetFilter, + State $state ) { $this->blockRepository = $blockRepository; $this->widgetFilter = $widgetFilter; + $this->state = $state; } /** @@ -56,7 +65,11 @@ public function getData(string $blockIdentifier): array ); } - $renderedContent = $this->widgetFilter->filter($block->getContent()); + $renderedContent = $this->state->emulateAreaCode( + 'frontend', + [$this, 'getRenderedBlockContent'], + [$block->getContent()] + ); $blockData = [ BlockInterface::BLOCK_ID => $block->getId(), @@ -66,4 +79,14 @@ public function getData(string $blockIdentifier): array ]; return $blockData; } + + /** + * @param string $blockContent + * + * @return string + */ + public function getRenderedBlockContent(string $blockContent) : string + { + return $this->widgetFilter->filter($blockContent); + } } From 0ee4cdd10392fa42dc3ea148d27bc557a3ce167b Mon Sep 17 00:00:00 2001 From: Ievgenii Gryshkun Date: Fri, 27 Sep 2019 15:24:44 +0300 Subject: [PATCH 2/5] Magento 2.3.2 - PWA - graphQl fetching Issue for phtml file called in static block #960 --- .../Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php b/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php index 9cbb34a93910..8eda6d27a1c7 100644 --- a/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php +++ b/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php @@ -66,7 +66,7 @@ public function getData(string $blockIdentifier): array } $renderedContent = $this->state->emulateAreaCode( - 'frontend', + \Magento\Framework\App\Area::AREA_FRONTEND, [$this, 'getRenderedBlockContent'], [$block->getContent()] ); @@ -81,6 +81,8 @@ public function getData(string $blockIdentifier): array } /** + * Get block data as it rendered on frontend + * * @param string $blockContent * * @return string From 30eebde175442b3439650659298cdd955112be4e Mon Sep 17 00:00:00 2001 From: Ievgenii Gryshkun Date: Fri, 18 Oct 2019 08:27:09 +0300 Subject: [PATCH 3/5] Magento 2.3.2 - PWA - graphQl fetching Issue for phtml file called in static block #960 --- .../Model/Resolver/DataProvider/Block.php | 29 ++----------------- .../Widget/Model/Template/FilterEmulate.php | 17 ++++++++++- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php b/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php index 8eda6d27a1c7..fa4944381b85 100644 --- a/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php +++ b/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php @@ -11,7 +11,6 @@ use Magento\Cms\Api\Data\BlockInterface; use Magento\Framework\Exception\NoSuchEntityException; use Magento\Widget\Model\Template\FilterEmulate; -use Magento\Framework\App\State; /** * Cms block data provider @@ -28,24 +27,16 @@ class Block */ private $widgetFilter; - /** - * @var State - */ - private $state; - /** * @param BlockRepositoryInterface $blockRepository * @param FilterEmulate $widgetFilter - * @param State $state */ public function __construct( BlockRepositoryInterface $blockRepository, - FilterEmulate $widgetFilter, - State $state + FilterEmulate $widgetFilter ) { $this->blockRepository = $blockRepository; $this->widgetFilter = $widgetFilter; - $this->state = $state; } /** @@ -65,11 +56,7 @@ public function getData(string $blockIdentifier): array ); } - $renderedContent = $this->state->emulateAreaCode( - \Magento\Framework\App\Area::AREA_FRONTEND, - [$this, 'getRenderedBlockContent'], - [$block->getContent()] - ); + $renderedContent = $this->widgetFilter->filter($block->getContent()); $blockData = [ BlockInterface::BLOCK_ID => $block->getId(), @@ -79,16 +66,4 @@ public function getData(string $blockIdentifier): array ]; return $blockData; } - - /** - * Get block data as it rendered on frontend - * - * @param string $blockContent - * - * @return string - */ - public function getRenderedBlockContent(string $blockContent) : string - { - return $this->widgetFilter->filter($blockContent); - } } diff --git a/app/code/Magento/Widget/Model/Template/FilterEmulate.php b/app/code/Magento/Widget/Model/Template/FilterEmulate.php index 9e3b571587a5..40c4ddcbdd41 100644 --- a/app/code/Magento/Widget/Model/Template/FilterEmulate.php +++ b/app/code/Magento/Widget/Model/Template/FilterEmulate.php @@ -1,4 +1,4 @@ -_appState->emulateAreaCode('frontend', [$this, 'generateWidget'], [$construction]); } + + /** + * @param string $value + * + * @return string + * @throws \Exception + */ + public function filter($value) : string + { + return $this->_appState->emulateAreaCode( + \Magento\Framework\App\Area::AREA_FRONTEND, + [$this, 'parent::filter'], + [$value] + ); + } } From 6295376d97bc95dfbff051583fbdbf63eeafa93f Mon Sep 17 00:00:00 2001 From: Ievgenii Gryshkun Date: Fri, 18 Oct 2019 09:18:41 +0300 Subject: [PATCH 4/5] Magento 2.3.2 - PWA - graphQl fetching Issue for phtml file called in static block #960 --- app/code/Magento/Widget/Model/Template/FilterEmulate.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/app/code/Magento/Widget/Model/Template/FilterEmulate.php b/app/code/Magento/Widget/Model/Template/FilterEmulate.php index 40c4ddcbdd41..9e57ebb34f0e 100644 --- a/app/code/Magento/Widget/Model/Template/FilterEmulate.php +++ b/app/code/Magento/Widget/Model/Template/FilterEmulate.php @@ -5,13 +5,20 @@ */ 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) { From 106f398556586d08613ae76092ac06b415f7f118 Mon Sep 17 00:00:00 2001 From: Lena Orobei Date: Thu, 24 Oct 2019 10:02:57 -0500 Subject: [PATCH 5/5] magento/graphql-ce#960: PWA - graphQl fetching Issue for phtml file called in static block --- .../CmsGraphQl/Model/Resolver/DataProvider/Block.php | 2 +- .../Magento/Widget/Model/Template/FilterEmulate.php | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php b/app/code/Magento/CmsGraphQl/Model/Resolver/DataProvider/Block.php index fa4944381b85..21bdca732b60 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 9e57ebb34f0e..4312003c7f34 100644 --- a/app/code/Magento/Widget/Model/Template/FilterEmulate.php +++ b/app/code/Magento/Widget/Model/Template/FilterEmulate.php @@ -1,8 +1,10 @@ -_appState->emulateAreaCode( \Magento\Framework\App\Area::AREA_FRONTEND, - [$this, 'parent::filter'], + [$this, 'filter'], [$value] ); }