我想只显示moodle用户页面中的学生,而无需使用Web界面手动添加过滤器。有人可以帮我怎么做吗?
答案 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');