Magento:如何将简单表单​​添加到管理菜单项?

时间:2013-02-01 08:09:02

标签: forms magento

我创建了一个新的菜单项,我们称之为“我的菜单项”。它显示在Magento的管理区域。如果单击新项目,我不想显示网格,但是带有一些文本字段和按钮的简单表单应该触发一个动作。我该怎么办?我找到的所有示例都创建了一个显示数据的网格,这不是我想要的。我只想在我的菜单项“后面”找一个表单

这可能吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

是的,完全可能,因为框架本质上是可扩展的。为什么不做以下事情。

1.确保您的adminhtml控制器正常工作。 2.)创建您在菜单项的操作标记中指定的操作。 3.)简单地说:

$this->loadLayout();
$this->renderLayout();

这些都需要控制器。此时,您应该加载标准的magento管理布局。那么你想在页面中添加一个表单吗?好的,容易的。

4.。)为模块声明一个布局xml文件。即在你的etc / config.xml中,即 将其置于全局节点之外。

<adminhtml>
    <layout>
        <updates>
            <yournamespace_yourmodule>
                <file>yourfile.xml</file>
            </yournamespace_yourmodule>
        </updates>
    </layout>
</adminhtml>

那么你会在哪里放置这个文件?

嗯,这取决于你,但我建议把它放在app / design / adminhtml / default / default / layout

这个档案是什么?好吧,我们可以注册一个块并设置一个模板文件。

该文件看起来像

<?xml version="1.0" encoding="UTF-8"?>
<layout>
<adminhtml_yourcontroller_youraction>
    <reference name="content">
         <block type="yournamespace_yourmodule/adminhtml_yourblock"
                name="yournamespace_yourmodule_form" template="yourformtemplate.phtml"/>
     </reference>
</adminhtml_yourcontroller_youraction>
</layout>

所以接下来的步骤将是

5.)根据如何在布局xml文件中引用它来声明一个新块

编辑为了澄清块文件,继续该示例,在模块目录中创建一个文件,在Block / Adminhtml下,并将其命名为“Yourblock.php”或任何您想要的内容,确保它对应于您的块声明:

<block type="yournamespace_yourmodule/adminhtml_yourblock" ... found in your layout file.

以下是Block Class的示例:

<?php

class Yournamespace_Yourmodule_Block_Adminhtml_Yourblock extends Mage_Adminhtml_Block_Template
{
     //to statt you dont really need anything here, but this is where you would place you block methods that can assist your template file when it needs data or other logic...
}

6。)创建一个模板文件并将其置于相关位置,在我的示例中将其放在

应用程序/设计/ adminhtml /默认/默认/模板

添加你的php表单(或一些标准的html来检查它是否正常工作)

就是这样(就显示表单而言 - 当然你现在需要创建动作来接受你的表单POST以及其他所有表单。)

回顾一下。

  • 声明adminhtml布局更新文件
  • 声明一个新的adminhtml块
  • 实例化块并设置其模板文件,确保布局更新仅特定于您的控制器操作。 (全部在布局xml文件中)
  • 在控制器操作中,只需加载并渲染布局。