我创建了一个新的菜单项,我们称之为“我的菜单项”。它显示在Magento的管理区域。如果单击新项目,我不想显示网格,但是带有一些文本字段和按钮的简单表单应该触发一个动作。我该怎么办?我找到的所有示例都创建了一个显示数据的网格,这不是我想要的。我只想在我的菜单项“后面”找一个表单
这可能吗?
谢谢!
答案 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以及其他所有表单。)
回顾一下。