38. 后台模块开发(3)

1.在 Magento 中, 表单(form)可以被分为4个基本部分

1、 表单容器              =>     FORM Container 
2、 表单                 =>     FORM    
3、 表单选项卡            =>     FORM Tabs
4、 真实的表单内容         =>     Actual Form Fields
public function newAction()
    {
        $this->loadLayout();
        $this->_addContent($this->getLayout()->createBlock('employee/adminhtml_employee_edit'))
        ->_addLeft('employee/adminhtml_employee_edit_tabs');
        $this->renderLayout();
    }
这里可以直接看出我们在 contentleft 区域里添加了两个 block, 主要的表单容器被加进了 content 区域,而表单选项卡被加进了 left 区域

2.表单容器

表单容器就是一个大的 div 框, 它包含了表单的所有元素和 html 代码, 为了创建一个容器, 你需要在 Block/Adminhtml/employee/ 文件下创一个 php 文件,并继承了 Mage_Adminhtml_Block_Widget_Form_Container 类

我们就把文件名命为: Edit.php
<?php

class Www_Employee_Block_Adminhtml_Employee_Edit extends Mage_Adminhtml_Block_Widget_Form_Container
{
    public function __construct()
    {
        parent::__construct();

        //这个变量被应用于表单的 URL 中, 它包含了表单实体的主键
        //拿删除按钮的 URL 来说: 模块/控制器/方法名/$this->_objectid/3
        $this->_objectId  = 'id';

        //这两个变量比较重要,它们就是用来锁定表单选项卡(tabs)文件的,
        //其路径应该是 {$this->_blockGroup . '/' . $this->_controller . '_' . $this->_mode . '_form'},
        //当中的$this->mode含有默认值: 'edit', 那么展现出的路径是: 'employee/adminhtml_employee_edit_form'
        $this->_blockGroup = 'employee';
        $this->_controller = 'adminhtml_employee';

        //$this->_updateButton('save','label',Mage::helper('employee')->__('Save'));
        //$this->_updateButton('delete','label',Mage::helper('employee')->__('Delete'));
        //$this->removeButton('reset');

        $this->_addButton('saveandcontinue', array(
            'label'    => Mage::helper('adminhtml')->__('Save And Continue Edit'),
            'onclick'  => 'saveAndContinueEdit()',
            'class'    => 'save',
        ),
            -100
        );
    }

    //这个方法返回出我们想在表单头部展示出的标题, 在上图已用红色框出
    public function getHeaderText()
    {
        return Mage::helper('employee')->__('My Form Container');
    }
}

3.表单

这个 Block/Adminhtml/Employee/Edit/Form.php 文件包含真实的 <form> 标签, 代码如下:

<?php

class Www_Employee_Block_Adminhtml_Employee_Edit_Form extends Mage_Adminhtml_Block_Widget_Form
{
    protected function _prepareForm()
    {
        $form = new Varien_Data_Form(
            array(
                'id'=>'edit_form',
                'action'=>$this->getUrl('*/*/save',array(
                    'id'=>$this->getRequest()->getParam('id')
                )),
                'method'=>'post',
                'enctype'=>'multipart/form-data'
            )
        );
        $form->setUseContainer(true);
        $this->setForm($form);
        return parent::_prepareForm();
    }
}

4.表单选项卡
这里写图片描述

<?php

class Www_Employee_Block_Adminhtml_Employee_Edit_Tabs extends Mage_Adminhtml_Block_Widget_Tabs
{
    public function __construct()
    {
        $this->setId('employee_tabs');
        $this->setDestElementId('edit_form');
        $this->setTitle(Mage::helper('employee')->__('Employee Information'));
        return parent::__construct();
    }

    protected function _beforeToHtml()
    {
        $this->addTab('form_section', array(
                'label'     =>    Mage::helper('employee')->__('Information'),
                'title'     =>    Mage::helper('employee')->__('Employee Information'),
                'content'   =>    $this->getLayout()
                    ->createBlock('employee/adminhtml_employee_edit_tab_form')
                    ->toHtml(),)
        );
        return parent::_beforeToHtml();
    }
}

这里写图片描述


5.真实的表单内容

<?php

class Www_Employee_Block_Adminhtml_Employee_Edit_Tab_Form extends Mage_Adminhtml_Block_Widget_Form
{
    protected function _prepareForm()
    {
        $model = Mage::registry('web_data');


        $form = new Varien_Data_Form();
        $this->setForm($form);
        $fieldset = $form->addFieldset('employee_form', array(
                'legend'   => Mage::helper('employee')->__('Employee information')
            )
        );

        $fieldset->addField('title', 'text', array(
                'label'    => Mage::helper('employee')->__('Title'),
                'class'    => 'required-entry',
                'required' => true,
                'name'     => 'title',
            )
        );

        $fieldset->addField('active', 'select', array(
            'label'    => Mage::helper('employee')->__('Enabled:'),
            'name'     => 'active',
            'class'    => 'required-entry',
            'required' => true,
            'values'   => array(
                array(
                    'value'  => 1,
                    'label'  => Mage::helper('employee')->__('Yes'),
                ),
                array(
                    'value'  => 0,
                    'label'  => Mage::helper('employee')->__('No'),
                ),
            ),
        ));

        $form->setValues($model->getData());

        return parent::_prepareForm();

    }

}

http://www.sunzhenghua.com/magento-admin-module-development-part3-grid-forms-tabs-updatebutton

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的海滨体育馆管理系统,源码+数据库+毕业论文+视频演示 本基于Spring Boot的海滨体育馆管理系统设计目标是实现海滨体育馆的信息化管理,提高管理效率,使得海滨体育馆管理工作规范化、高效化。 本文重点阐述了海滨体育馆管理系统的开发过程,以实际运用为开发背景,基于Spring Boot框架,运用了Java技术和MySQL作为系统数据库进行开发,充分保证系统的安全性和稳定性。本系统界面良好,操作简单方便,通过系统概述、系统分析、系统设计、数据库设计、系统测试这几个部分,详细的说明了系统的开发过程,最后并对整个开发过程进行了总结,实现了海滨体育馆相关信息管理的重要功能。 本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高海滨体育馆管理效率。 关键词:海滨体育馆管理,Java技术,MySQL数据库,Spring Boot框架 本基于Spring Boot的海滨体育馆管理系统主要实现了管理员功能模块和学生功能模块两大部分,这两大功能模块分别实现的功能如下: (1)管理员功能模块 管理员登录后可对系统进行全面管理操作,包括个人中心、学生管理、器材管理、器材借出管理、器材归还管理、器材分类管理、校队签到管理、进入登记管理、离开登记管理、活动预约管理、灯光保修管理、体育论坛以及系统管理。 (2)学生功能模块 学生在系统前台可查看系统信息,包括首页、器材、体育论坛以及体育资讯等,没有账号的学生可进行注册操作,注册登录后主要功能模块包括个人中心、器材管理、器材借出管理、器材归还管理、校队签到管理、进入登记管理、离开登记管理、活动预约管理。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值