@@ -74,16 +74,23 @@ class Menu extends \Magento\Backend\Block\Template
7474 */
7575 private $ anchorRenderer ;
7676
77+ /**
78+ * @var ConfigInterface
79+ */
80+ private $ routeConfig ;
81+
7782 /**
7883 * @param Template\Context $context
7984 * @param \Magento\Backend\Model\UrlInterface $url
8085 * @param \Magento\Backend\Model\Menu\Filter\IteratorFactory $iteratorFactory
8186 * @param \Magento\Backend\Model\Auth\Session $authSession
8287 * @param \Magento\Backend\Model\Menu\Config $menuConfig
8388 * @param \Magento\Framework\Locale\ResolverInterface $localeResolver
89+ * @param \Magento\Framework\App\Route\ConfigInterface $routeConfig
8490 * @param array $data
8591 * @param MenuItemChecker|null $menuItemChecker
8692 * @param AnchorRenderer|null $anchorRenderer
93+ * @SuppressWarnings(PHPMD.ExcessiveParameterList)
8794 */
8895 public function __construct (
8996 \Magento \Backend \Block \Template \Context $ context ,
@@ -94,7 +101,8 @@ public function __construct(
94101 \Magento \Framework \Locale \ResolverInterface $ localeResolver ,
95102 array $ data = [],
96103 MenuItemChecker $ menuItemChecker = null ,
97- AnchorRenderer $ anchorRenderer = null
104+ AnchorRenderer $ anchorRenderer = null ,
105+ \Magento \Framework \App \Route \ConfigInterface $ routeConfig = null
98106 ) {
99107 $ this ->_url = $ url ;
100108 $ this ->_iteratorFactory = $ iteratorFactory ;
@@ -103,6 +111,9 @@ public function __construct(
103111 $ this ->_localeResolver = $ localeResolver ;
104112 $ this ->menuItemChecker = $ menuItemChecker ;
105113 $ this ->anchorRenderer = $ anchorRenderer ;
114+ $ this ->routeConfig = $ routeConfig ?:
115+ \Magento \Framework \App \ObjectManager::getInstance ()
116+ ->get (\Magento \Framework \App \Route \ConfigInterface::class);
106117 parent ::__construct ($ context , $ data );
107118 }
108119
@@ -203,8 +214,9 @@ protected function _afterToHtml($html)
203214 */
204215 protected function _callbackSecretKey ($ match )
205216 {
217+ $ routeId = $ this ->routeConfig ->getRouteByFrontName ($ match [1 ]);
206218 return \Magento \Backend \Model \UrlInterface::SECRET_KEY_PARAM_NAME . '/ ' . $ this ->_url ->getSecretKey (
207- $ match [ 1 ] ,
219+ $ routeId ,
208220 $ match [2 ],
209221 $ match [3 ]
210222 );
0 commit comments