更改课程注册插件(Moodle 3.5)的搜索过滤器的查询

时间:2019-01-14 07:33:01

标签: php moodle



我被困在穆德的一个地方。

默认值:当管理员注册学生或老师时,搜索将通过姓名,电子邮件或用户名进行。

要进行的更改:包括默认+按注册号(在另一个表- mdl_info_data 中,所有剩余数据在 mdl_user 表中)搜索 >

默认情况下,此处的搜索过滤器按用户名,全名或电子邮件ID运行。

在课程设置中,我被要求添加一个名为注册号的新字段,其数据进入

enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

我解决了自己的问题。

如果将来有人遇到类似问题,您可以通过转到页面来解决此问题

页面-project / enroll / locallib.php

查询分为两个功能:

  1. get_potential_users()-编写查询-第453行(大约)

    ///添加了LEFT JOIN以在注册号之间创建链接-16.01.2019     $ sql =“ FROM {user} u     左联接{user_enrolments} ue ON(ue.userid = u.id和ue.enrolid =:enrolid)     左联接{user_info_data} uid开(uid.userid = u.id)     $ wherecondition和ue.id为NULL的位置     “;

2。 get_basic_search_conditions-在哪里添加条件的搜索(在我的情况下,我还通过注册号添加搜索)

// added the second where clause
$conditions[] = $DB->sql_fullname('u.firstname', 'u.lastname');
$conditions[] = 'uid.data'; // added for filtering by registration number - 16.01.2019

我也附加了locallib.php页面,以便更好地理解

您也可以通过此Moodle链接获取附件:)。 https://moodle.org/mod/forum/discuss.php?d=380942#p1536136