Pierwszym krokiem jest utworzenie bloku o nazwie „stopa”, który jest zasadniczo taki sam jak „głowa”, ale wyprowadzisz go w innym miejscu. Możesz dodać to do swojegopage.xml
:
<block type="page/html_head" name="foot" as="foot" template="page/html/foot.phtml"/>
Teraz możesz dodać JS / CSS (chociaż CSS w stopce nie jest zalecany) za pomocą tego polecenia w dowolnym pliku 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>
Wewnątrz page/html/foot.phtml
:
<?php echo $this->getCssJsHtml() ?>
<?php echo $this->getChildHtml() ?>
<?php echo $this->helper('core/js')->getTranslatorScript() ?>
<?php echo $this->getIncludes() ?>
W plikach szablonów strony (np. page/1column.phtml
) Musisz wydrukować ten blok przed tagiem zamykającym:
<?php echo $this->getChildHtml('foot') ?>
Jeśli używasz domyślnych szablonów Magento, otrzymasz błędy JS. Weźmy na przykład formularz mini wyszukiwania ( catalogsearch/form.mini.phtml
). Ma ten wbudowany skrypt:
<script type="text/javascript">
//<![CDATA[
var searchForm = new Varien.searchForm('search_mini_form', 'search', '<?php echo $this->__('Search Redset...') ?>');
//]]>
</script>
Zostanie to wywołane, gdy tylko się załaduje, ponieważ nie ma go w żadnym programie obsługującym dokumenty. Varien jeszcze nie istnieje, ponieważ znajduje się w stopce, więc pojawia się błąd. Można to naprawić, dodając moduł obsługi dokumentów lub przenosząc wszystkie wbudowane pliki JS tego rodzaju do zewnętrznego pliku, który jest również ładowany w stopce. Takie problemy będą występować w całej witrynie, szczególnie na kasach i konfigurowalnych stronach produktów.
Innym problemem, który możesz napotkać, jest użycie jQuery razem z Prototype w trybie noConflict. Musisz upewnić się, że jQuery jest załadowane przed Prototypem, aby nie doszło do konfliktów.