Magento - 获取皮肤URL

时间:2015-01-29 14:14:38

标签: magento skin

我想调用我的Magento商店皮肤的URL来加载图片。我已经读过你可以使用<?php echo $this->getSkinUrl('images/ sampleimage.gif', array('_secure'=>true)) ?>,但是我使用它来获得“调用未定义的方法”。我试过寻找这个方法的Mage::getModel版本,但我找不到它。

我确实找到了Alan Storm的文章,它让我大部分时间都在那里:http://alanstorm.com/magento_base_directories。艾伦说我可以使用Mage::getBaseDir(‘skin’),我找到Mage::getSingleton('core/design_package')->getPackageName()。我找不到一种方法来获取skin目录的最后一部分。如果我当前的皮肤是/skin/frontend/base/default/我到目前为止已经到了/skin/frontend/base/,我只需要能够让Magento给我最后的/default/部分目录。

我希望我在这里咆哮错误的树,并且我可以调用一个很好的Mage :: getModel方法,比如$this->getSkinUrl。你能帮忙吗?

3 个答案:

答案 0 :(得分:5)

你完全正确,模特是Mage_Core_Model_Design_Package

所以这就是诀窍:

echo Mage::getModel ( 'core/design_package' )->getSkinUrl ();

我确实发现了这种方式: 我知道我(或在这种情况下你)正在寻找的功能,所以我只是尝试将文件放在原来的位置:

grep -Rni 'function getSkinUrl' .
./app/code/core/Mage/Core/Model/Design/Package.php:482:    public function getSkinUrl($file = null, array $params = array())

很好,现在我只需要将文件翻译成句柄,以便Mage/Core/Model/Design/Package成为core/design_package

正如在评论中的某些核心查找中发现的那样,另一种方法是使用:

Mage::getDesign()->getSkinUrl()

答案 1 :(得分:1)

Mage :: getSkinUrl('images / imagename.gif',array('_ secure'=&gt; true));

答案 2 :(得分:0)

试试这个:

法师:: getBaseUrl(Mage_Core_Model_Store :: URL_TYPE_SKIN);