首页 > 代码库 > moodle中文API之表单API

moodle中文API之表单API

Form API

表单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().

由于时间精力有限,没有细化的查出每个函数及表单元素的使用方法,但是,相关使用方法可以点击对应文字连接到官方对应说明文档中查找。




moodle中文API之表单API