如何从magento中的admin模块加载布局

时间:2011-10-27 02:50:11

标签: php model-view-controller magento

我很难为我正在为Magento构建的管理模块设置MVC结构。我希望做的是正确设置design/adminhtml/layout/ppr_extension.xml来控制页面内容。到目前为止,我正在从IndexController加载phtml和脚本:

$this->loadLayout();
$this->_setActiveMenu('ppr_menu/first_page');
$this->_addContent($this->getLayout()->createBlock('adminhtml/template')->setTemplate('ppr/ppr_1.phtml'));
$loadSimple = $this->getLayout()->getBlock('head')->addJs('ppr/load.simple.js');
$this->_addJs($loadSimple);
$this->renderLayout();

我想从配置xml加载它但由于某种原因我不能得到这个工作。我想它与我的包结构有关但我看不到它!

模板文件存在于design / adminhtml / default / MyPackage / ppr_1.phtml

我尝试将其添加到代码/ local / MyPackage / PPR / etc / config.xml

<adminhtml>
    <menu> ... </menu>

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

扩展xml在design / adminhtml / default / default / layout / ppr_extension.xml

我在这里尝试过很多东西,比如:

<?xml version="1.0"?>
<layout version="0.1.0">
    <ppr_adminhtml_ppr_index>       
     <reference name="head">
      <action method="addJs"><script>script.js</script></action>
    </reference>

                                           

无论我放在那里,似乎都没有发生任何事情。我错过了什么?

我尝试将extension.xml移动到design / adminhtml / MyPackage / layout,但这也没有用。谢谢你的帮助..我脑子疼!“

1 个答案:

答案 0 :(得分:4)

现在您使用Commerce Bug会更容易。

调试布局问题的第一步是确保正在加载布局xml文件。转到Commerce Bug中的布局选项卡,然后单击“包布局”链接。在那里寻找您的自定义XML。如果您没有看到这意味着您的XML未加载,那么您应该专注于在config.xml中获取正确的XML,并将文件放在正确的位置。

另外,请考虑根本没有需要来使用layout xml。管理控制台开发人员将它用于外壳和一些神奇的小部件功能,但是管理员中有很多东西,只是在控制器操作中添加了块,或者在其他块中添加了块。使用PHP生成块对象并不可耻。