Первым шагом является создание блока под названием «foot», который по сути совпадает с «head», но вы выведете его в другом месте. Вы можете добавить это к вашему page.xml
:
<block type="page/html_head" name="foot" as="foot" template="page/html/foot.phtml"/>
Теперь вы можете добавить JS / CSS (хотя CSS в нижнем колонтитуле не рекомендуется), используя эту команду в любом из ваших 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>
Внутри page/html/foot.phtml
:
<?php echo $this->getCssJsHtml() ?>
<?php echo $this->getChildHtml() ?>
<?php echo $this->helper('core/js')->getTranslatorScript() ?>
<?php echo $this->getIncludes() ?>
В ваших файлах шаблонов страниц (например page/1column.phtml
) вам нужно будет вывести этот блок перед закрывающим тегом body:
<?php echo $this->getChildHtml('foot') ?>
Если вы используете шаблоны Magento по умолчанию, вы получите ошибки JS. Возьмите мини-форму поиска например ( catalogsearch/form.mini.phtml
). У этого есть встроенный скрипт:
<script type="text/javascript">
//<![CDATA[
var searchForm = new Varien.searchForm('search_mini_form', 'search', '<?php echo $this->__('Search Redset...') ?>');
//]]>
</script>
Это будет вызвано, как только он загрузится, поскольку это не находится ни в одном обработчике готовности документа. Varien еще не существует, потому что он находится в нижнем колонтитуле, поэтому вы получаете сообщение об ошибке. Это можно исправить, добавив обработчик готовых документов или переместив все встроенные JS такого типа во внешний файл, который также загружается в нижний колонтитул. Подобные проблемы будут возникать по всему сайту, особенно на страницах оформления заказа и настраиваемых товаров.
Другая проблема, с которой вы можете столкнуться, это если вы используете jQuery вместе с Prototype в режиме noConflict. Вам нужно убедиться, что jQuery загружен до Prototype, чтобы не возникало конфликтов.