最初のステップは、「foot」と呼ばれるブロックを作成することです。これは、本質的に「head」と同じですが、別の場所に出力します。これを以下に追加できますpage.xml
:
<block type="page/html_head" name="foot" as="foot" template="page/html/foot.phtml"/>
これで、XMLファイルで次のコマンドを使用して、JS / CSSを追加できます(フッターのCSSは推奨されません)。
<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をフッターにも読み込まれる外部ファイルに移動します。このような問題は、サイト全体、特にチェックアウトおよび構成可能な製品ページで発生します。
あなたが遭遇するかもしれない他の問題は、noConflictモードでPrototypeとともにjQueryを使用している場合です。競合が発生しないように、jQueryがPrototypeの前にロードされるようにする必要があります。