Équivalent de la directive CMS {{media url = “…”}} dans les modèles de blocs normaux

14

Quel est l'équivalent {{media url="wysiwyg/image.jpg"}}qui peut être utilisé dans les pages CMS si nous voulons l'utiliser dans un .phtmlfichier normal (du type core/template)

Alex
la source

Réponses:

14

Le rendu de ces URL se fait lors de l'affichage des pages CMS ou des blocs dans

\Mage_Core_Model_Email_Template_Filter::mediaDirective:

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

Base sur ce code, juste un

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

peut être utilisé dans le modèle

Alex
la source
2
Supprimez simplement le blockquote ( `) du deuxième extrait de code (après ?>image.jpg">). (Je ne peux pas éditer moins de 6 lettres)
hims056
2
+1 Mais il vaut peut-être mieux passer Mage_Core_Model_Store::URL_TYPE_MEDIAau lieu de 'media'?
Nick Rolando
12

Dans un fichier de modèle phtml:

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

Dans un bloc ou une page CMS:

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

La différence entre {{media url="foo"}}et {{store direct_url="media/foo"}}est que ce dernier code en dur le chemin du répertoire multimédia en tant que media.
Cela peut entraîner des problèmes lors de l'utilisation d'un CDN ou autre, car il contourne Mage::getBaseUrl('media').

Vinai
la source
Quelle est la difference entre {{store direct_url="media/url"}}et {{media url="foo"}}?
Alex
Mis à jour ma réponse en conséquence.
Vinai
Je vous remercie. J'ai également modifié ma question pour la rendre plus claire - je veux l'URL complète d'une image. En fait, je serais heureux d'accepter ma propre réponse ;-) --- comme je connais le mieux mon problème :-P
Alex
4
Notez que: {{store direct_url = "media / url"}} -> Si mod_rewrite est désactivé, cela peut introduire index.php dans l'url, cassant ainsi l'url du média.
MagePsycho
1
@MagePsycho: bon point. Heureusement, je n'ai jamais eu de magasin avec mod_rewrite désactivé.
Vinai