El primer paso es crear un bloque llamado "pie" que es esencialmente lo mismo que "cabeza" pero lo sacará en un lugar diferente. Puede agregar esto a su page.xml
:
<block type="page/html_head" name="foot" as="foot" template="page/html/foot.phtml"/>
Ahora puede agregar JS / CSS (aunque no se recomienda CSS en el pie de página) utilizando este comando en cualquiera de sus archivos XML:
<reference name="foot">
<action method="addItem">
<type>skin_js</type>
<name>js/somefile.js</name>
</action>
<action method="addItem">
<type>skin_js</type>
<name>js/main.js</name>
</action>
</reference>
Dentro page/html/foot.phtml
:
<?php echo $this->getCssJsHtml() ?>
<?php echo $this->getChildHtml() ?>
<?php echo $this->helper('core/js')->getTranslatorScript() ?>
<?php echo $this->getIncludes() ?>
En los archivos de plantilla de página (por ejemplo page/1column.phtml
), deberá generar este bloque antes de la etiqueta de cierre del cuerpo:
<?php echo $this->getChildHtml('foot') ?>
Si está utilizando las plantillas predeterminadas de Magento, obtendrá errores JS. Tome el mini formulario de búsqueda, por ejemplo ( catalogsearch/form.mini.phtml
). Tiene este script en línea:
<script type="text/javascript">
//<![CDATA[
var searchForm = new Varien.searchForm('search_mini_form', 'search', '<?php echo $this->__('Search Redset...') ?>');
//]]>
</script>
Esto se llamará tan pronto como se cargue, ya que no está en ningún manejador listo para documentos. Varien aún no existe porque está en el pie de página, por lo que obtienes un error. Puede solucionar esto agregando un controlador listo para documentos o moviendo todos los JS en línea de esta naturaleza a un archivo externo que también se carga en el pie de página. Problemas como este ocurrirán en todo el sitio, particularmente en las páginas de pago y productos configurables.
El otro problema que puede encontrar es si está utilizando jQuery junto con Prototype en modo noConflict. Deberá asegurarse de que jQuery esté cargado antes de Prototype para que no ocurran conflictos.