普通块模板中的CMS指令{{media url =“…”}}}的等效项


14

{{media url="wysiwyg/image.jpg"}}如果我们想在普通.phtml文件(类型为core/template)中使用它,则可以在CMS页中使用的等效项是什么?

Answers:


14

在显示CMS页或

\Mage_Core_Model_Email_Template_Filter::mediaDirective

public function mediaDirective($construction)
{
    $params = $this->_getIncludeParameters($construction[2]);
    return Mage::getBaseUrl('media') . $params['url'];
}

根据此代码,

<img src="<?php echo Mage::getBaseUrl('media') ?>image.jpg">

可以在模板中使用


2
只需`从第二个代码段(之后?>image.jpg">)中删除blockquote()。(我不能少于6个字母)
hims056 2013年

2
+1但最好通过Mage_Core_Model_Store::URL_TYPE_MEDIA而不是'media'
Nick Rolando 2014年

12

在phtml模板文件中:

Mage::getBaseUrl('media') . $url;

在CMS块或页面中:

{{store direct_url="media/url"}}

{{media url="foo"}}和之间的区别{{store direct_url="media/foo"}}是后者将媒体目录路径硬编码为media
使用CDN之类的东西可能会导致问题,因为它会绕过Mage::getBaseUrl('media')


{{store direct_url="media/url"}}和之间有什么区别{{media url="foo"}}
亚历克斯

相应地更新了我的答案。
Vinai 2013年

谢谢。我还编辑了我的问题以使其更清楚-我想要图片的完整URL。其实我很乐意接受我自己的答案;-) ---因为我知道我的问题,最好的:-P
亚历

4
请注意:{{store direct_url =“ media / url”}}->如果禁用了mod_rewrite,这可能会在URL中引入index.php,从而破坏了媒体URL。
MagePsycho

1
@MagePsycho:好点。幸运的是,我从未有过禁用mod_rewrite的ha存储。
Vinai 2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.