我想调用我的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
。你能帮忙吗?
答案 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);