创建Moodle
newmodule
后,我希望能够从系统中的当前用户列表中进行选择,并为其分配一些其他数据。它看起来如下:
Add user manually
用户
[CHOOSE]
租车站
[text field]
车型
[textfield]
每日价格
[list of prices available]
我构建了数据库,添加了文本字段,文本字段以及用于选择用户的按钮,但是如何构建获取用户列表和添加所选用户的功能?
我没有在Moodle中找到这样的例子来使用它。
答案 0 :(得分:0)
如果您预计系统中会有很多用户,那么请扩展user_selector_base
类
答案 1 :(得分:0)
根据提供的信息,我认为您正在寻找的是一种过滤用户ID的方法,以便针对该用户保存您的自定义信息。
您可能会发现一个名为single_select的小部件,它会创建一个下拉菜单,在所选值发生更改时发送POST数据。
例如:
global $DB, $OUTPUT;
$posturl = new moodle_url('/local/newmodule');
$options = $DB->get_records_menu('user', array(), '', "id, CONCAT(firstname, ' ', lastname)");
$singleselect = new single_select($posturl, 'userid', $options);
echo $OUTPUT->render($singleselect);
这将输出下拉框并在重新加载时将“userid”发送到页面。然后,您可以获取该用户ID:
$userid = optional_param('userid', 0, PARAM_INT);
当您从表单中检索数据以保存数据时使用它。
if ($data = $myform->get_data()) {
$data->userid = $userid;
$DB->update('mytable', $data);
}