如何在用户页面中显示学生(Moodle:/admin/user.php)

时间:2014-06-23 13:17:16

标签: moodle

我想只显示moodle用户页面中的学生,而无需使用Web界面手动添加过滤器。有人可以帮我怎么做吗?

2 个答案:

答案 0 :(得分:0)

这是不可能的,因为在Moodle中,很少有人被赋予“学生”的角色。在系统级别(如果你这样做,他们可以访问网站上的每个课程)。

学生的概念'在Moodle只在课程层面有意义。

答案 1 :(得分:0)

您可以创建仅显示学生的链接,但您需要发布数据。我就是这样做的。

如果您安装了WebDeveloper - http://chrispederick.com/work/web-developer/

然后转到/admin/user.php并单击WebDeveloper,选择“Forms”选项卡并“将POSTS转换为GETS”。

选择过滤器,然后点击添加过滤器。这将显示包含所有表单字段的URL。 Moodle期待POST而不是GET。

因此,将url复制并粘贴到变量中,并使用带有post方法的single_button函数,例如:

$url = '/admin/user.php?sesskey=xxxxxxx&_qf__user_add_filter_form=1&mform_showmore_id_newfilter=1&mform_isexpanded_id_newfilter=1&realname_op=0&realname=&lastname_op=0&lastname=&firstname_op=0&firstname=&email_op=0&email=&city_op=0&city=&country_op=0&confirmed=&suspended=&profile_fld=0&profile_op=0&profile=&courserole_rl=5&courserole_ct=0&courserole=&systemrole=0&cohort_op=2&cohort=&username_op=0&username=&auth=&deleted=&addfilter=Add+filter';
echo $OUTPUT->single_button($url, get_string('student'), 'post');

复制并粘贴您自己的网址,而不是上面的网址。

你可以删除很多参数。您还应该为学生获取roleid并使用moodle_url函数,例如:

$studentroleid = $DB->get_field('role', 'id', array('shortname' => 'student'));
$params = array('courserole_rl' => $studentroleid, 'courserole_ct' => 0, ... );
$url = new moodle_url('/admin/user.php', $params);
echo $OUTPUT->single_button($url, get_string('students'), 'post');