Form API
目录
1.概述
2.亮点
3.用法
4.表单元素
4.1 基本表单元素
4.2 定制表单元素
5.常用函数
5.1 add_action_buttons($cancel =true,$submitlabel =null)
5.2 setDefault()
5.3 disableif()
5.4 addRule()
5.5 setHelpButton
5.6 addHelpButton
5.7 setType()
5.8 disable_form_change_checker()
1.概述
WEB表单在Moodle中创建是使用Form API。Form API支持所有的html表单元素(checkbox/radio/textbox 等等),而且引入安全检查。
2.亮点
1. 支持拖拽
2. 较少使用表格布局.
3. 表当数据安全, 通过携带必须的参数,可选的session key.
4. 支持客户端有效性检查
5. 可以在表单元素里添加Moodle帮助按钮.
6. 支持文件库
7. 支持许多定制的moodle特定的与非特定的表单元素。
8. 可添加重复元素.
9. 按组添加表单元素
3.用法
在 moodle中创建一个表单, 你需要创建一个class 继承自 moodleform class 而且还要重写 definition方法来包含你要创建的表单元素。
//moodleform 类定义在 formslib.php文件中 require_once("$CFG->libdir/formslib.php"); class simplehtml_form extends moodleform { //为form添加元素 public function definition() { global $CFG; $mform = $this->_form; //别忘了下划线 $mform->addElement('text', 'email', get_string('email')); // 添加元素到你的表单 $mform->setType('email', PARAM_NOTAGS); //设置元素类型 $mform->setDefault('email', 'Please enter email'); //设置元素默认值 ... } //定制有效性检查可以放在这个函数里 function validation($data, $files) { return array(); } }
然后初始化 form (这个例子是初始化 simplehtml_form)在你要添加表单的页面里。
//首先包含 simplehtml_form.php 文件 require_once('PATH_TO/simplehtml_form.php'); //然后实例化simplehtml_form $mform = new simplehtml_form(); //Form程序处理和显示放在这里 if ($mform->is_cancelled()) { //处理取消表单操作(如果有取消按钮的话) } else if ($fromform = $mform->get_data()) { //I这里可以进行数据有效性检查 $mform->get_data() 返回表单传递过来的数据. } else { // 这个分支是表单初始化或者如果表单提交后数据不合法,那么表单就得重新显示 //设置默认数据 如果存在的话 $mform->set_data($toform); //显示表单 $mform->display(); }
4.表单元素
4.1 基本表单元素
1. button 普通按钮
2. checkbox 复选框
3. radio 单选框
4. select 下拉列表
5. multi-select 多选下拉列表
6. password 密码框
7. hidden 隐藏表单元素
8. html - div元素
9. static - 显示一个静态的文本.
10. text - 文本框
11. textarea - 文本域
4.2 定制表单元素
1. advcheckbox - Advance checkbox
2. passwordunmask - 密码元素是可选将密码显示成普通文本.
3. recaptcha - 验证码
4. selectyesno - 是否选择框
5. selectwithlink - 带链接的下拉选择框
6. date_selector 日期选择器
7. date_time_selector 日期时间选择器
8. duration 持续时间
9. editor 富文本编辑器
10. filepicker - 上传单个文件
11. filemanager - 上传多个文件
12. tags - 标记
13. addGroup - 添加到组
14. modgrade - 模块分数
15. modvisible - 模块可见性
16. choosecoursefile - 选择课程文件
17. grading - 等级
18. questioncategory - 问题类型
5.常用函数
5.1 add_action_buttons($cancel =true,$submitlabel =null)
添加动作按钮,第一个参数是要不要添加取消按钮,第二个参数是提交按钮的文本信息是什么可用函数is get_string(‘savechanges‘). 获得,最贱的的默认如下:
$this->add_action_buttons();
5.2 setDefault()
为单个元素设置默认值
5.3 disableif()
在这里添加条件隐藏某些不满足显示条件的表单元素或组。
5.4 addRule()
为 server/client 添加有效性检查规则. 像文本框类型为email的时候.
5.5 setHelpButton()
为表单元素设置一个弹出的帮助信息
5.6 addHelpButton()
添加上面设置好的帮助信息。
5.7 setType()
PARAM_* 提交时会检查的特殊变量类型.
5.8 disable_form_change_checker()
默认情况下, 任何 Moodle 表单江会弹出"你确定提交?" 的警告框,如果你想做些改变然后尝试离开这个页面不做保存. 偶尔,这是不希望看到的 这种情况下你可以调用
$mform->disable_form_change_checker().
由于时间精力有限,没有细化的查出每个函数及表单元素的使用方法,但是,相关使用方法可以点击对应文字连接到官方对应说明文档中查找。