这里的问题可能是处理订单之一。我的猜测是你的 PHP 代码是在 head 块被渲染之后被评估的。虽然您的代码成功更新了头块类实例,但它发生在从该实例生成输出之后。
更好的解决方案是addJs()
在布局 XML 中添加调用,以便在渲染之前对其进行处理。如果有一个ifnotconfig
属性会很好,但现在你可以使用一个助手。
使用基于配置设置返回脚本路径的方法创建一个辅助类,然后将其用作返回参数。
<?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>