Equivalente alla direttiva CMS {{media url = “…”}} nei modelli a blocchi normali


14

Qual è l'equivalente di {{media url="wysiwyg/image.jpg"}}cui può essere usato nelle pagine CMS se vogliamo usarlo in un normale .phtmlfile (del tipo core/template)

Risposte:


14

Il rendering di questi URL viene eseguito durante la visualizzazione di pagine CMS o blocchi

\Mage_Core_Model_Email_Template_Filter::mediaDirective:

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

Basati su questo codice, solo un

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

può essere utilizzato nel modello


2
Rimuovi blockquote ( `) dal secondo frammento di codice (dopo ?>image.jpg">). (Non riesco a modificare meno di 6 lettere)
hims056

2
+1 Ma potrebbe essere meglio passare Mage_Core_Model_Store::URL_TYPE_MEDIAinvece di 'media'?
Nick Rolando,

12

In un file modello phtml:

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

In un blocco o pagina CMS:

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

La differenza tra {{media url="foo"}}e {{store direct_url="media/foo"}}è che quest'ultimo codifica il percorso della directory multimediale come media.
Ciò potrebbe causare problemi quando si utilizza un CDN o qualcosa del genere, perché ignora Mage::getBaseUrl('media').


Qual'è la differenza tra {{store direct_url="media/url"}}e {{media url="foo"}}?
Alex,

Aggiornato di conseguenza la mia risposta.
Vinai,

Grazie. Ho anche modificato la mia domanda per renderlo più chiaro: voglio l'URL completo di un'immagine. In realtà sarei felice di accettare la mia risposta ;-) --- come conosco meglio il mio problema :-P
Alex

4
Nota che: {{store direct_url = "media / url"}} -> Se mod_rewrite è disabilitato, questo potrebbe introdurre index.php nell'URL, interrompendo quindi l'URL multimediale.
MagoPsycho,

1
@MagePsycho: buon punto. Fortunatamente non ho mai avuto un negozio con mod_rewrite disabilitato.
Vinai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.