/** * Get HTML output for override hint UI * * @param \Magento\Config\Block\System\Config\Form $form * @param array $overridden * @return string */ public function formatOverriddenScopes(\Magento\Config\Block\System\Config\Form $form, array $overridden) { $title = __('This setting is overridden at a more specific scope. Click for details.'); $formatted = '<a class="overridden-hint-list-toggle" title="' . $title . '" href="#"><span>' . $title . '</span></a>' . '<ul class="overridden-hint-list">'; foreach ($overridden as $overriddenScope) { $scope = $overriddenScope['scope']; $scopeId = $overriddenScope['scope_id']; $scopeLabel = $scopeId; $url = '#'; $section = $form->getSectionCode(); switch ($scope) { case 'website': $url = $this->urlBuilder->getUrl('*/*/*', array('section' => $section, 'website' => $scopeId)); $scopeLabel = sprintf('website <a href="%s">%s</a>', $url, $this->storeManager->getWebsite($scopeId)->getName()); break; case 'store': $store = $this->storeManager->getStore($scopeId); $website = $store->getWebsite(); $url = $this->urlBuilder->getUrl('*/*/*', array('section' => $section, 'store' => $store->getId())); $scopeLabel = sprintf('store view <a href="%s">%s</a>', $url, $website->getName() . ' / ' . $store->getName()); break; } $formatted .= "<li class='{$scope}'>Overridden on {$scopeLabel}</li>"; } $formatted .= '</ul>'; return $formatted; }