Heim  >  Fragen und Antworten  >  Hauptteil

So erhalten Sie Benutzer für jede Kategorie und Unterkategorie in Moodle

Ich möchte die Benutzer jeder Kategorie gewinnen. Ich verwende Moodle Version 3.8. Gibt es eine Möglichkeit, Benutzer nach Kategorien zu ermitteln?

P粉818306280P粉818306280259 Tage vor372

Antworte allen(1)Ich werde antworten

  • P粉567281015

    P粉5672810152024-02-27 09:21:08

    如果您正在寻找 Moodle 函数来执行此操作,那么您可以调用:

    $cat = core_course_category::get($categoryid);
    $courseids = $cat->get_courses(['recursive', 'idonly']);
    $userids = [];
    foreach ($courseids as $courseid) {
        $context = context_course::instance($courseid);
        $courseusers = get_enrolled_users($context, '', 0, 'u.id');
        $userids = array_merge($userids, array_keys($courseusers));
    }

    然而,这是非常低效的 - 你最好编写一个自定义 SQL 查询,根据课程 ID 列表,它将生成所有这些课程的注册用户列表(看看代码内部) get_enrolled_users() 来了解如何构建这样的 SQL 查询)。

    Antwort
    0
  • StornierenAntwort