Еквівалент Директиви CMS {{media url = “…”}} у звичайних блокових шаблонах


14

Який еквівалент {{media url="wysiwyg/image.jpg"}}може бути використаний на сторінках CMS, якщо ми хочемо використовувати це у звичайному .phtmlфайлі (типу core/template)

Відповіді:


14

Надання цих таких URL-адрес здійснюється під час відображення 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
Просто видаліть blockquote ( `) з другого фрагмента коду (після ?>image.jpg">). (Я не можу редагувати менше 6 листів)
hims056

2
+1 Але може бути краще пройти Mage_Core_Model_Store::URL_TYPE_MEDIAзамість 'media'?
Нік Роландо

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

Дякую. Я також відредагував своє запитання, щоб зробити його більш зрозумілим - я хочу отримати повну URL-адресу зображення. Насправді я був би радий прийняти власну відповідь ;-) --- оскільки я найкраще знаю свою проблему :-P
Alex

4
Зауважте, що: {{store direct_url = "media / url"}} -> Якщо mod_rewrite вимкнено, це може ввести index.php в URL, отже, порушити URL-адресу медіа.
MagePsycho

1
@MagePsycho: хороший момент. Пощастило, що я ніколи не мав магазину ha з вимкненим mod_rewrite.
Vinai
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.