Setara dengan Petunjuk CMS {{media url = "..."}} di Templat Blok Normal

14

Apa yang setara {{media url="wysiwyg/image.jpg"}}yang dapat digunakan di halaman CMS jika kita ingin menggunakan ini dalam .phtmlfile normal (dari tipe core/template)

Alex
sumber

Jawaban:

14

Perenderan URL semacam ini dilakukan saat menampilkan halaman atau blok CMS di

\Mage_Core_Model_Email_Template_Filter::mediaDirective:

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

Berdasarkan kode ini, hanya sebuah

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

dapat digunakan dalam templat

Alex
sumber
2
Hapus saja blokquote ( `) dari cuplikan kode kedua (setelah ?>image.jpg">). (Saya tidak dapat mengedit kurang dari 6 huruf)
hims056
2
+1 Tetapi mungkin lebih baik untuk lulus Mage_Core_Model_Store::URL_TYPE_MEDIAdaripada 'media'?
Nick Rolando
12

Dalam file template phtml:

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

Di blok atau halaman CMS:

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

Perbedaan antara {{media url="foo"}}dan {{store direct_url="media/foo"}}adalah bahwa yang terakhir hardcodes jalur direktori media sebagai media.
Itu mungkin mengarah ke masalah ketika menggunakan CDN atau sesuatu, karena memintas Mage::getBaseUrl('media').

Vinai
sumber
apa perbedaan antara {{store direct_url="media/url"}}dan {{media url="foo"}}?
Alex
Memperbarui jawaban saya sesuai dengan itu.
Vinai
Terima kasih. Saya juga mengedit pertanyaan saya untuk membuatnya lebih jelas - saya ingin URL lengkap gambar. Sebenarnya saya akan senang menerima jawaban saya sendiri ;-) --- karena saya tahu masalah saya yang terbaik :-P
Alex
4
Perhatikan bahwa: {{store direct_url = "media / url"}} -> Jika mod_rewrite dinonaktifkan, ini mungkin memperkenalkan index.php di url, maka memecah url media.
MagePsycho
1
@MagePsycho: poin bagus. Beruntung saya tidak pernah memiliki ha store dengan mod_rewrite dinonaktifkan.
Vinai