我创建了一个新的菜单项,我们称之为“我的菜单项”。它显示在 Magento 的管理区域。如果单击新项目,我不想显示网格,而是一个带有一些文本字段和按钮的简单表单应该触发一个动作。我该怎么做?我发现的所有示例都创建了一个网格来显示数据,这不是我想要的。我只想要一个表格就在我的菜单项“后面”
那可能吗?
谢谢!
是的,它完全有可能,因为该框架本质上是可扩展的。你为什么不做以下。
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 以及所有其他内容)。
回顾一下。