概述
Web表单在moodle中的创建方式是使用forms API,它提供了所有的html元素(例如checkbox, radio, textbox等),并且更加安全易用。
Form API的特性
- 在主流屏幕阅读器(Dragon、JAWS等)上进行过测试和优化
- 使用tableless layout
- 通过required_param, optional_param 和 session key等方式对表单中的数据进行了安全性检查
- 支持多种客户端
- 可以方便的添加moodle帮助按钮
- 通过File API提供对文件仓库的支持
- 提供了自定义的多种表单元素
- 加入了重复元素的支持
- 加入了高级表单元素
Form API的使用
为了在moodle中创建一个表单,你必须新建一个继承于moodleform类的类,并且重写它的definition()函数来加入你想要的表单元素。
|
|
之后可以在其他地方实例化该表单类。
|
|
表单元素
基础表单元素
- button
- checkbox
- radio
- select
- multi-select
- password
- hidden
- html -div element
- static -显示一个静态的文本
- text
- textarea
自定义的表单元素
- advcheckbox -高级的复选框
- passworddunmask -允许以明文方式查看的密码输入框元素
- recaptcha
- selectyesno
- selectwithlink
- data_selector
- date_time_selector
- duration
- editor
- filepicker -上传单个文件
- filemanager -批量上传文件
- tags
- addGroup
- modgrade
- modvisible
- choosecoursefile
- grading
- questioncategory
上述元素的具体使用方法会在后面的文档中介绍
可能会用到的函数
add_action_buttons();
你通常可以使用这个帮助函数来帮你自动在表单最后添加所有的action按钮。传入的两个参数允许你设置是否需要cancel按钮并设置submit按钮的显示文字(通过get_string()函数获取),默认的显示文字是通过get_string('savechanges')
函数来获取到的。注意要使用$this
而不是$mform
。
|
|
setDefault()
设置元素的默认值
disableif()
对表单中的任何元素或元素组你可以有条件的将其设置为不可见。
addRule()
给客户端/服务器的确认增加一条规则,例如文本必须为email格式
setHelpButton()
为一个表单元素设置弹出样式的帮助框
addHelpButton()
为一个表单元素添加一个弹出样式的帮助狂
setType()
它的参数用来指定提交的数据的类型
disable_form_chage_checker()
默认情况下,在你进行了修改后没有进行保存就尝试离开当前页面的时候,所有的moodle表单会弹出一个”你确定要离开吗?”的对话框。有时候不需要这样的机制,你就可以通过调用$mform->disable_form_change_checker()
来取消这一功能。
设置元素组
在之后的文档中会介绍