【问题标题】:Magento - Get the Skin URLMagento - 获取皮肤 URL
【发布时间】:2015-01-29 14:14:37
【问题描述】:

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

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

我希望我在这里找错了树,并且我可以调用一个不错的 Mage::getModel 方法,例如 $this->getSkinUrl。你能帮忙吗?

【问题讨论】:

    标签: magento skin


    【解决方案1】:

    您的设想完全正确,型号是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

    正如在 cmets 中的一些核心查找过程中发现的那样,另一种方法是简单地使用:

    Mage::getDesign()->getSkinUrl()
    

    【讨论】:

    • 太棒了,谢谢。我刚刚揭开了那个 PHP 文件的面纱,我会稍微挖掘一下。与此同时,这是正确的,并且完全按照我想要的方式工作。
    • @user2036972 顺便说一句,您在哪里尝试这样做?也许您只是因为忘记扩展或扩展错误的类而收到此错误。
    • 我很高兴你问在哪里而不是为什么!我正在尝试在 /app/design/frontend/xxxx/xxxx/template/page/1column.phtml 中执行此操作,我希望这意味着我可以使用不同的、更简单的方法,但您的代码可以在任何地方工作。
    • 不,我只是想知道...奇怪,因为代码说 1column.phtmlMage_Page_Block_Html 类型,最终扩展 Mage_Core_Block_Abstract 与函数 getSkinUrl 定义 @987654331 @(嘿,另一种获得你想要的东西的方法,只是 Mage::getDesign()->getSkinUrl() )...所以使用 $this 应该工作。
    • 最后一条评论让我想到了几件事。我现在将不得不通过核心追溯一些事情。有道理,而且您提供的新代码也有效,我会玩一下。谢谢!
    【解决方案2】:

    Mage::getSkinUrl('images/imagename.gif', array('_secure'=>true));

    【讨论】:

    • 致命错误:调用未定义的方法 Mage::getSkinUrl()
    【解决方案3】:

    试试这个:

    Mage::getBaseUrl(Mage_Core_Model_Store::URL_TYPE_SKIN);

    【讨论】:

    • 这只是让我进入 /skin/ - 我已经做到了。我正在寻找 /skin/frontend/base/default/。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-12
    • 2015-04-18
    • 2013-11-25
    • 1970-01-01
    相关资源
    最近更新 更多