Per impostazione predefinita questa informazione non è (affidabile, stabilmente) esposta tramite Javascript. Avrai bisogno di esporlo da solo tramite un blocco personalizzato aggiunto al layout. Il modo più semplice per farlo sarà
Aggiungendo il blocco tramite local.xml
file del tema
Aggiunta di un modello per il tema per il blocco sopra
Per aggiungere il blocco il layout tramite il tuo file local.xml
, qualcosa del genere dovrebbe essere sufficiente
<default>
<reference name="root">
<block name="my_custom_js_block">
<action method="setTemplate">
<template>my_custom_js_block/extra-js.phtml</template>
</action>
</block>
</reference>
</default>
Quindi aggiungere il seguente cartella e file sul tema
app/design/frontend/default/your_theme/template/my_custom_js_block/
app/design/frontend/default/your_theme/template/my_custom_js_block/extra-js.phtml
A questo punto si dispone di un file phtml
modello che verrà resa su ogni pagina. Puoi aggiungere qualsiasi variabile javascript che desideri. Sono appassionato di un qualcosa di simile modello
#File: app/design/frontend/default/your_theme/template/my_custom_js_block/extra-js.phtml
<?php
$h = Mage::helper('core');
$info = new stdClass();
$info->base_dir = Mage::getBaseDir();
?>
<script type="text/javascript">
var my_custom_js_block_info = <?php echo $h->jsonEncode($info); ?>;
</script>
(codice top-of-my-testa non testato, ma dovrebbe funzionare)
fonte
2012-01-20 04:09:14
Grazie per la risposta dettagliata. Come posso aggiungere questo blocco dal file config.xml del mio modulo, piuttosto che local.xml? Sto facendo un modulo riutilizzabile e non posso fare affidamento sull'utente che modifica local.xml. –
Google in giro per aggiungere un file XML di layout personalizzato nel file config.xml del tuo modulo. Proprio come Mage_Catalog aggiunge catalog.xml, puoi avere il tuo modulo include un file XML personalizzato. –
Dopo alcune ore di ricerche e tentativi con i molti metodi contraddittori e diversi per realizzare questo, ho fallito. C'è un modo per sapere se il mio file xml personalizzato viene persino incluso in fase di esecuzione? –