Por defecto, esta información no es (de forma fiable, estable) expone a través de Javascript. Tendrá que exponerlo usted mismo a través de un bloque personalizado agregado al diseño. La forma más sencilla de hacer esto será
Adición del bloque a través de archivos de su tema local.xml
Adición de una plantilla a su tema para el bloque por encima
Para añadir el bloque de el diseño a través de su archivo local.xml
, algo como esto debería ser suficiente
<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>
A continuación, agregue la siguiente carpeta y archivo en el 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
En este punto tiene un archivo phtml
plantilla que se representa en cada página. Puede agregar las variables de JavaScript que desee. Soy aficionado a un patrón algo así como
#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>
(código no probado, tope de mi cabeza, pero debería funcionar)
Gracias por la respuesta detallada. ¿Cómo podría agregar este bloque del archivo config.xml de mi módulo, en lugar de local.xml? Estoy creando un módulo reutilizable y no puedo confiar en que el usuario modifique local.xml. –
Google para agregar un archivo XML de diseño personalizado en config.xml de su módulo. Al igual que Mage_Catalog agrega catalog.xml, puede hacer que su módulo incluya un archivo XML personalizado. –
Después de algunas horas de buscar y probar los _mangos_ métodos contradictorios y diferentes para lograr esto, he fallado. ¿Hay alguna forma de saber si mi archivo xml personalizado se está incluyendo en tiempo de ejecución? –