這裏的問題可能是處理順序之一。我的猜測是你的PHP代碼在頭塊被渲染後正在被評估。當您的代碼正在成功更新頭塊類實例時,它在從該實例生成輸出後發生。
更好的解決方案是在佈局XML中添加addJs()
調用,以便在渲染前處理它們。如果有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>
條件語句是否適用於簡單的echo/print? – 2012-08-13 15:25:38
感謝Alan的回覆。是的,如果我將它回顯出來,條件確實會提供0或1。但是,我試圖消除除了一行之外的整行: $ this-> getLayout() - > getBlock('head') - > addJs('path-to-file/file1.js'); 但它仍然無法正常工作。該路徑位於js根目錄之後。 – user1576748 2012-08-13 16:47:15
您從哪個區塊的模板文件調用? – 2012-08-13 17:33:19