调试布局xml文件 - 文件未加载到系统中

时间:2012-07-18 19:53:59

标签: xml magento

我无法将我的布局xml文件加载到系统中。我需要在adminhtml中加载我正在构建的模块,所以这里的配置部分很重要:

<adminhtml>
<layout>
    <updates>
        <coupsmart_coupon>
            <file>coupsmart_coupon.xml</file>
        </coupsmart_coupon>
    </updates>
</layout>
</adminhtml>

现在,实际的布局文件名为coupsmart_coupon.xml文件,如下所示:

<layout>
    <coupsmart_coupon_adminhtml_coup_index>
        <update handle="coupsmart_coupon"/>
        <reference name="content">
            <block type="coupsmart_coupon/adminhtml_forms" name="myform"/>
        </reference>
    </coupsmart_coupon_adminhtml_coup_index>
</layout>

现在,为了调试这个,我在布局xml文件中添加了一个错误,例如省略了一个右括号(&gt;),我没有例外。所以我在控制器中使用$this->getLayout()->getUpdate()->getHandles()检查了句柄,然后我将coupsmart_coupon_adminhtml_coup_index作为句柄之一返回,这正是我在布局xml文件中命名的句柄。为什么这不会加载?

注意:我已清除缓存并再次尝试。还是行不通。我也有登录和例外,所以我的日志中应该显示异常。如果需要任何其他代码,请告诉我。

3 个答案:

答案 0 :(得分:2)

想出来,因为adminhtml.xml没有添加到DOM,而xml文件实际上位于etc/adminhtml.xml而不是config.xml。当我将布局更新移动到config时,它看起来如下:

<config>
    <adminhtml>
        <layout>
            <updates>
                <coupsmart_coupon>
                    <file>coupsmart_coupon.xml</file>
                </coupsmart_coupon>
            </updates>
        </layout>
    </adminhtml>
</config>

现在它有效。谢谢大家的帮助。

答案 1 :(得分:1)

Yout config.xml是:<config><adminhtml>...</adminhtml></config>对吗?

我们在谈论Magento 1.7?您是否尝试将layout.xml放在

design/frontend/base/default/layout

你确定你的config.xml被读了吗?

我知道,不好的问题,但是:你真的清除了正确的magento实例的缓存吗? : - )

config.xml似乎是正确的,所以错误就在之前,我想。

希望有所帮助。

答案 2 :(得分:1)

仅供参考,该文件可能位于app / design / default / layout /中,请确认或建议是否有自定义的adminhtml设计包。

此外,您可能需要在index.php中调用Mage :: setIsDeveloperMode(true),这可以通过添加

来完成
SetEnv MAGE_IS_DEVELOPER_MODE

到.htaccess文件(请参阅index.php以评估此内容)。打破布局XML,刷新缓存后端,你应该看到错误。