Equivalente a la Directiva CMS {{media url = "..."}} en plantillas de bloque normal


14

¿Cuál es el equivalente de lo {{media url="wysiwyg/image.jpg"}}que se puede usar en las páginas de CMS si queremos usar esto en un .phtmlarchivo normal (del tipo core/template)?

Respuestas:


14

La representación de este tipo de URL se realiza al mostrar páginas o bloques de CMS en

\Mage_Core_Model_Email_Template_Filter::mediaDirective:

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

Base en este código, solo un

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

se puede usar en la plantilla


2
Simplemente elimine el blockquote ( `) del segundo fragmento de código (después ?>image.jpg">). (No puedo editar menos de 6 letras)
hims056

2
+1 ¿Pero puede ser mejor pasar en Mage_Core_Model_Store::URL_TYPE_MEDIAlugar de 'media'?
Nick Rolando

12

En un archivo de plantilla phtml:

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

En un bloque o página de CMS:

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

La diferencia entre {{media url="foo"}}y {{store direct_url="media/foo"}}es que este último codifica la ruta del directorio de medios como media.
Eso podría generar problemas al usar un CDN o algo así, ya que se omite Mage::getBaseUrl('media').


¿Cuál es la diferencia entre {{store direct_url="media/url"}}y {{media url="foo"}}?
Alex

Actualicé mi respuesta en consecuencia.
Vinai

Gracias. También edité mi pregunta para que quede más clara: quiero la URL completa de una imagen. En realidad, me encantaría aceptar mi propia respuesta ;-) --- como conozco mejor mi problema :-P
Alex

44
Tenga en cuenta que: {{store direct_url = "media / url"}} -> Si mod_rewrite está deshabilitado, esto puede introducir index.php en la url y, por lo tanto, romper la url de medios.
MagePsycho

1
@MagePsycho: buen punto. Por suerte, nunca tuve una tienda con mod_rewrite deshabilitado.
Vinai
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.