diff --git a/vendor/magento/module-versions-cms/Model/CurrentNodeResolver.php b/vendor/magento/module-versions-cms/Model/CurrentNodeResolver.php index a5e63603fbe1..5a4ba3b137db 100644 --- a/vendor/magento/module-versions-cms/Model/CurrentNodeResolver.php +++ b/vendor/magento/module-versions-cms/Model/CurrentNodeResolver.php @@ -80,9 +80,11 @@ public function __construct( */ public function get(RequestInterface $request) { - $pageId = $request->getParam('page_id', false); - - if (!isset($this->nodesPool[$pageId])) { + $nodeIdentifier = $pageId = $request->getParam('page_id', false); + if (method_exists($request, 'getPathInfo')) { + $nodeIdentifier = $requestUrl = trim($request->getPathInfo(), '/'); + } + if (!isset($this->nodesPool[$nodeIdentifier])) { /* * Define actual node scope, scope_id values */ @@ -110,14 +112,15 @@ public function get(RequestInterface $request) /* * Retrieve node object by request_url value */ - if (isset($nodes[0]) && isset($nodes[0]['request_url'])) { - $node->loadByRequestUrl($nodes[0]['request_url']); - $this->nodesPool[$pageId] = $node->getId() ? $node : null; + $itemId = isset($requestUrl) ? (int)array_search($requestUrl, array_column($nodes, 'request_url')) : 0; + if (isset($nodes[$itemId]['request_url'])) { + $node->loadByRequestUrl($nodes[$itemId]['request_url']); + $this->nodesPool[$nodeIdentifier] = $node->getId() ? $node : null; } else { - $this->nodesPool[$pageId] = null; + $this->nodesPool[$nodeIdentifier] = null; } } - return $this->nodesPool[$pageId]; + return $this->nodesPool[$nodeIdentifier]; } }