1

我无法将我的布局 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 文件中添加了一个错误,例如省略了右括号 (>),并且没有任何异常。因此,我检查了$this->getLayout()->getUpdate()->getHandles()控制器中使用的句柄,然后coupsmart_coupon_adminhtml_coup_index作为其中一个句柄返回,这正是我在布局 xml 文件中命名的句柄。为什么这不会加载?

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

4

3 回答 3

2

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

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

现在它可以工作了。感谢大家的帮助。

于 2012-07-19T18:46:39.793 回答
1

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

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

design/frontend/base/default/layout?

您确定您的 config.xml 已被读取吗?

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

config.xml 似乎是正确的,所以我认为错误是之前的。

希望有帮助。

于 2012-07-18T20:05:53.733 回答
1

仅供参考,该文件可能应该在 app/design/default/layout/ 中,请确认或告知是否有自定义 adminhtml 设计包。

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

SetEnv MAGE_IS_DEVELOPER_MODE

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

于 2012-07-19T03:22:49.047 回答