ここでの問題は、処理順序の問題である可能性があります。私の推測では、ヘッドブロックがレンダリングされた後にPHPコードが評価されていると思います。コードがヘッドブロッククラスインスタンスを正常に更新している間、そのインスタンスから出力が生成された後に発生します。
addJs()
より良い解決策は、レンダリングの前に処理されるように、レイアウトXMLに呼び出しを追加することです。属性があればいいのですifnotconfig
が、今のところヘルパーを使うことができます。
構成設定に基づいてスクリプトパスを返すメソッドを使用してヘルパークラスを作成し、これをreturn引数として使用します。
<?php
class My_Module_Helper_Class extends Mage_Core_Helper_Abstract
{
public function getJsBasedOnConfig()
{
if (Mage::getStoreConfigFlag('mymodule/settings/enable')) {
return 'path-to-file/file1.js';
}
else {
return 'path-to-file/file2.js';
}
}
}
次に、レイアウトXMLで:
<?xml version="1.0"?>
<layout>
<default>
<reference name="head">
<action method="addJs">
<file helper="classgroup/class/getJsBasedOnConfig" />
<!-- i.e. Mage::helper('module/helper')->getJsBasedOnConfig() -->
</action>
</reference>
</default>
</layout>