如何在magento 2.0中获取当前活动主题

问题描述 投票:0回答:3

我在使用Magento 2.0时遇到了麻烦。我必须使用我在magento 1.x版本中获得的当前活动主题名称,例如: “Mage :: getSingleton('core / design_package') - > getPackageName()”但我没有为Magento 2.0获得任何替代品。请建议我应该使用哪种型号或功能。

magento magento-2.0
3个回答
3
投票

您可以使用以下示例获取Magento 2.0中的当前活动主题:

use Magento\Framework\View\DesignInterface;

$theme = $this->_design->getDesignTheme()

2
投票

我找到了解决方案:Follwing类需要依赖:

\Magento\Framework\App\Config\ScopeConfigInterface
\Magento\Store\Model\StoreManagerInterface
\Magento\Framework\View\Design\Theme\ThemeProviderInterface

使用此方法获取当前主题的数据:

public function getTheme()
{
    $themeId = $this->_scopeConfig->getValue(
        \Magento\Framework\View\DesignInterface::XML_PATH_THEME_ID,
        \Magento\Store\Model\ScopeInterface::SCOPE_STORE,
        $this->_storeManager->getStore()->getId()
    );

    /** @var $theme \Magento\Framework\View\Design\ThemeInterface */
    $theme = $this->_themeProvider->getThemeById($themeId);

    return $theme->getData();
}

-1
投票

getSingleton从magento 2折旧,而不是这个

$object_manager = Magento\Core\Model\ObjectManager::getInstance();

http://magento-quickies.alanstorm.com/post/66167788899/magento-2-replacements-for-getmodel-and

© www.soinside.com 2019 - 2024. All rights reserved.