在magento,我试图获得当前的主题或包的名称,但没有找到任何东西。我使用了getSkinUrl('),但它是返回皮肤路径,而不是包或主题name.please,请告诉我如何获得主题或包的名称。
发布于 2012-06-22 21:23:43
当前包
Mage::getSingleton('core/design_package')->getPackageName()当前主题(前端)
Mage::getSingleton('core/design_package')->getTheme('frontend')发布于 2013-10-14 10:09:34
请注意,@Drew Hunter的上述答案并不完全正确。虽然getTheme()是所需的函数调用,但字符串“frontend”不是此方法的可接受参数。此方法唯一允许的值是:
也就是说,此函数的正确用法是以下几行之一:
Mage::getSingleton('core/design_package')->getTheme()
Mage::getSingleton('core/design_package')->getTheme('locale')
Mage::getSingleton('core/design_package')->getTheme('layout')
Mage::getSingleton('core/design_package')->getTheme('template')
Mage::getSingleton('core/design_package')->getTheme('default')
Mage::getSingleton('core/design_package')->getTheme('skin')如果不能以这种方式使用该方法,将始终默认返回字符串‘’。
意外结果
不正确的使用会产生逻辑错误。举个例子,如果你定义了一个专门针对移动设备的“匹配表达式”。
Mage::getSingleton('core/design_package')引用以下类
Mage_Core_Model_Design_Package通过查看这个类中的'getTheme()‘方法,你会注意到你可以传递这个方法的可能选项,它们是'locale','layout','template','default’和'skin‘。
因此,如果一个特定的商店有“模板”的“匹配表达式”,如下所示
iPhone|iPod|Mobile|mobile > mobile可能会发生以下情况
Mage::getSingleton('core/design_package')->getTheme('frontend') RETURNS 'default'
Mage::getSingleton('core/design_package')->getTheme('template') RETURNS 'mobile'发布于 2013-03-07 23:27:26
因为
Mage::getSingleton('core/design_package')等同于
Mage::getDesign()Drew的例子可以缩短为:
Mage::getDesign()->getPackageName()和
Mage::getDesign()->getTheme('frontend')https://stackoverflow.com/questions/11155570
复制相似问题