Proyectos de Subversion Moodle

Rev

Rev 1 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1 Rev 11
Línea 322... Línea 322...
322
 
322
 
323
    /**
323
    /**
324
     * Get the enrolled users for course.
324
     * Get the enrolled users for course.
325
     *
325
     *
-
 
326
     * @param stdClass $course The course object.
326
     * @param stdClass $course The course object.
327
     * @param bool $onlyactive Only enrolments that are active (e.g. not suspended).
327
     * @return array
328
     * @return array
328
     */
329
     */
329
    public static function get_enrolled_users_for_course(stdClass $course): array {
330
    public static function get_enrolled_users_for_course(stdClass $course, bool $onlyactive = true): array {
330
        global $CFG;
331
        global $CFG;
331
        require_once($CFG->libdir . '/enrollib.php');
332
        require_once($CFG->libdir . '/enrollib.php');
332
        return array_column(
333
        return array_column(
333
            enrol_get_course_users(courseid: $course->id),
334
            enrol_get_course_users(courseid: $course->id, onlyactive: $onlyactive),
334
            'id',
335
            'id',
335
        );
336
        );
Línea 336... Línea 337...
336
    }
337
    }
Línea 428... Línea 429...
428
 
429
 
429
        // Attempt to get the communication provider if it wasn't provided in the data.
430
        // Attempt to get the communication provider if it wasn't provided in the data.
430
        if (empty($provider)) {
431
        if (empty($provider)) {
431
            $provider = $coursecommunication->get_provider();
432
            $provider = $coursecommunication->get_provider();
-
 
433
        }
Línea 432... Línea 434...
432
        }
434
        $roomnameidenfier = $provider . 'roomname';
433
 
435
 
-
 
436
        // Determine the communication room name if none was provided and add it to the course data.
-
 
437
        if (empty($course->$roomnameidenfier)) {
434
        // Determine the communication room name if none was provided and add it to the course data.
438
            $course->$roomnameidenfier = $coursecommunication->get_room_name();
-
 
439
            if (empty($course->$roomnameidenfier)) {
435
        if (empty($course->communicationroomname)) {
440
                $course->$roomnameidenfier = $course->fullname ?? get_course($course->id)->fullname;
Línea 436... Línea 441...
436
            $course->communicationroomname = $course->fullname ?? get_course($course->id)->fullname;
441
            }
437
        }
442
        }
Línea 463... Línea 468...
463
                context: $coursecontext,
468
                context: $coursecontext,
464
            );
469
            );
465
            $communication->configure_room_and_membership_by_provider(
470
            $communication->configure_room_and_membership_by_provider(
466
                provider: $provider,
471
                provider: $provider,
467
                instance: $course,
472
                instance: $course,
468
                communicationroomname: $course->communicationroomname,
473
                communicationroomname: $course->$roomnameidenfier,
469
                users: $enrolledusers,
474
                users: $enrolledusers,
470
                instanceimage: $courseimage,
475
                instanceimage: $courseimage,
471
            );
476
            );
472
        } else {
477
        } else {
473
            // Update the group communication instances.
478
            // Update the group communication instances.
Línea 484... Línea 489...
484
 
489
 
485
            // Now handle the course communication according to the provider.
490
            // Now handle the course communication according to the provider.
486
            $communication->configure_room_and_membership_by_provider(
491
            $communication->configure_room_and_membership_by_provider(
487
                provider: $provider,
492
                provider: $provider,
488
                instance: $course,
493
                instance: $course,
489
                communicationroomname: $course->communicationroomname,
494
                communicationroomname: $course->$roomnameidenfier,
490
                users: $enrolledusers,
495
                users: $enrolledusers,
491
                instanceimage: $courseimage,
496
                instanceimage: $courseimage,
492
                queue: false,
497
                queue: false,
Línea 514... Línea 519...
514
            userids: self::get_enrolled_users_for_course(course: $course),
519
            userids: self::get_enrolled_users_for_course(course: $course),
515
            courseid: $course->id,
520
            courseid: $course->id,
516
        );
521
        );
Línea 517... Línea 522...
517
 
522
 
518
        foreach ($coursegroups as $coursegroup) {
523
        foreach ($coursegroups as $coursegroup) {
519
            $groupuserstoadd = array_column(
524
            $groupusers = array_column(
520
                groups_get_members(groupid: $coursegroup->id),
525
                groups_get_members(groupid: $coursegroup->id),
521
                'id',
526
                'id',
Línea -... Línea 527...
-
 
527
            );
-
 
528
 
-
 
529
            // Filter out users who are not active in this course.
-
 
530
            $enrolledusers = self::get_enrolled_users_for_course(course: $course);
522
            );
531
            $groupuserstoadd = array_intersect($groupusers, $enrolledusers);
523
 
532
 
524
            foreach ($allaccessgroupusers as $allaccessgroupuser) {
533
            foreach ($allaccessgroupusers as $allaccessgroupuser) {
525
                if (!in_array($allaccessgroupuser, $groupuserstoadd, true)) {
534
                if (!in_array($allaccessgroupuser, $groupuserstoadd, true)) {
526
                    $groupuserstoadd[] = $allaccessgroupuser;
535
                    $groupuserstoadd[] = $allaccessgroupuser;
Línea 531... Línea 540...
531
            $communication = self::load_by_group(
540
            $communication = self::load_by_group(
532
                groupid: $coursegroup->id,
541
                groupid: $coursegroup->id,
533
                context: $coursecontext,
542
                context: $coursecontext,
534
            );
543
            );
Línea -... Línea 544...
-
 
544
 
535
 
545
            $roomnameidenfier = $provider . 'roomname';
536
            $communicationroomname = self::format_group_room_name(
546
            $communicationroomname = self::format_group_room_name(
537
                baseroomname: $course->communicationroomname,
547
                baseroomname: $course->$roomnameidenfier,
538
                groupname: $coursegroup->name,
548
                groupname: $coursegroup->name,
Línea 539... Línea 549...
539
            );
549
            );
540
 
550