我无法将我的布局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文件中命名的句柄。为什么这不会加载?
注意:我已清除缓存并再次尝试。还是行不通。我也有登录和例外,所以我的日志中应该显示异常。如果需要任何其他代码,请告诉我。
答案 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,刷新缓存后端,你应该看到错误。