public static function get_chats_by_courses($courseids = array()) {
        global $CFG;

        $returnedchats = array();
        $warnings = array();

        $params = self::validate_parameters(self::get_chats_by_courses_parameters(), array('courseids' => $courseids));

        $courses = array();
        if (empty($params['courseids'])) {
            $courses = enrol_get_my_courses();
            $params['courseids'] = array_keys($courses);
        }

        // Ensure there are courseids to loop through.
        if (!empty($params['courseids'])) {

            list($courses, $warnings) = external_util::validate_courses($params['courseids'], $courses);

            // Get the chats in this course, this function checks users visibility permissions.
            // We can avoid then additional validate_context calls.
            $chats = get_all_instances_in_courses("chat", $courses);
            foreach ($chats as $chat) {
                $chatcontext = context_module::instance($chat->coursemodule);
                // Entry to return.
                $chatdetails = array();
                // First, we return information that any user can see in the web interface.
                $chatdetails['id'] = $chat->id;
                $chatdetails['coursemodule']      = $chat->coursemodule;
                $chatdetails['course']            = $chat->course;
                $chatdetails['name']              = external_format_string($chat->name, $chatcontext->id);
                // Format intro.
                list($chatdetails['intro'], $chatdetails['introformat']) =
                    external_format_text($chat->intro, $chat->introformat, $chatcontext->id, 'mod_chat', 'intro', null);
                $chatdetails['introfiles'] = external_util::get_area_files($chatcontext->id, 'mod_chat', 'intro', false, false);

                if (has_capability('mod/chat:chat', $chatcontext)) {
                    $chatdetails['chatmethod']    = $CFG->chat_method;
                    $chatdetails['keepdays']      = $chat->keepdays;
                    $chatdetails['studentlogs']   = $chat->studentlogs;
                    $chatdetails['chattime']      = $chat->chattime;
                    $chatdetails['schedule']      = $chat->schedule;
                }

                if (has_capability('moodle/course:manageactivities', $chatcontext)) {
                    $chatdetails['timemodified']  = $chat->timemodified;
                    $chatdetails['section']       = $chat->section;
                    $chatdetails['visible']       = $chat->visible;
                    $chatdetails['groupmode']     = $chat->groupmode;
                    $chatdetails['groupingid']    = $chat->groupingid;
                }
                $returnedchats[] = $chatdetails;
            }
        }
        $result = array();
        $result['chats'] = $returnedchats;
        $result['warnings'] = $warnings;
        return $result;
    }
public static function get_chats_by_courses($courseids = array()) {
        global $CFG;

        $returnedchats = array();
        $warnings = array();

        $params = self::validate_parameters(self::get_chats_by_courses_parameters(), array('courseids' => $courseids));

        $courses = array();
        if (empty($params['courseids'])) {
            $courses = enrol_get_my_courses();
            $params['courseids'] = array_keys($courses);
        }

        // Ensure there are courseids to loop through.
        if (!empty($params['courseids'])) {

            list($courses, $warnings) = external_util::validate_courses($params['courseids'], $courses);

            // Get the chats in this course, this function checks users visibility permissions.
            // We can avoid then additional validate_context calls.
            $chats = get_all_instances_in_courses("chat", $courses);
            foreach ($chats as $chat) {
                $chatcontext = context_module::instance($chat->coursemodule);
                // Entry to return.
                $chatdetails = array();
                // First, we return information that any user can see in the web interface.
                $chatdetails['id'] = $chat->id;
                $chatdetails['coursemodule']      = $chat->coursemodule;
                $chatdetails['course']            = $chat->course;
                $chatdetails['name']              = external_format_string($chat->name, $chatcontext->id);
                // Format intro.
                list($chatdetails['intro'], $chatdetails['introformat']) =
                    external_format_text($chat->intro, $chat->introformat, $chatcontext->id, 'mod_chat', 'intro', null);
                $chatdetails['introfiles'] = external_util::get_area_files($chatcontext->id, 'mod_chat', 'intro', false, false);

                if (has_capability('mod/chat:chat', $chatcontext)) {
                    $chatdetails['chatmethod']    = $CFG->chat_method;
                    $chatdetails['keepdays']      = $chat->keepdays;
                    $chatdetails['studentlogs']   = $chat->studentlogs;
                    $chatdetails['chattime']      = $chat->chattime;
                    $chatdetails['schedule']      = $chat->schedule;
                }

                if (has_capability('moodle/course:manageactivities', $chatcontext)) {
                    $chatdetails['timemodified']  = $chat->timemodified;
                    $chatdetails['section']       = $chat->section;
                    $chatdetails['visible']       = $chat->visible;
                    $chatdetails['groupmode']     = $chat->groupmode;
                    $chatdetails['groupingid']    = $chat->groupingid;
                }
                $returnedchats[] = $chatdetails;
            }
        }
        $result = array();
        $result['chats'] = $returnedchats;
        $result['warnings'] = $warnings;
        return $result;
    }
public static function get_chats_by_courses ( $ courseids = array ( ) ) { global $ CFG ; $ returnedchats = array ( ) ; $ warnings = array ( ) ; $ params = self :: validate_parameters ( self :: get_chats_by_courses_parameters ( ) , array ( 'courseids' => $ courseids ) ) ; $ courses = array ( ) ; if ( empty ( $ params [ 'courseids' ] ) ) { $ courses = enrol_get_my_courses ( ) ; $ params [ 'courseids' ] = array_keys ( $ courses ) ; } // Ensure there are courseids to loop through. if ( ! empty ( $ params [ 'courseids' ] ) ) { list ( $ courses , $ warnings ) = external_util :: validate_courses ( $ params [ 'courseids' ] , $ courses ) ; // Get the chats in this course, this function checks users visibility permissions. // We can avoid then additional validate_context calls. $ chats = get_all_instances_in_courses ( "chat" , $ courses ) ; foreach ( $ chats as $ chat ) { $ chatcontext = context_module :: instance ( $ chat -> coursemodule ) ; // Entry to return. $ chatdetails = array ( ) ; // First, we return information that any user can see in the web interface. $ chatdetails [ 'id' ] = $ chat -> id ; $ chatdetails [ 'coursemodule' ] = $ chat -> coursemodule ; $ chatdetails [ 'course' ] = $ chat -> course ; $ chatdetails [ 'name' ] = external_format_string ( $ chat -> name , $ chatcontext -> id ) ; // Format intro. list ( $ chatdetails [ 'intro' ] , $ chatdetails [ 'introformat' ] ) = external_format_text ( $ chat -> intro , $ chat -> introformat , $ chatcontext -> id , 'mod_chat' , 'intro' , null ) ; $ chatdetails [ 'introfiles' ] = external_util :: get_area_files ( $ chatcontext -> id , 'mod_chat' , 'intro' , false , false ) ; if ( has_capability ( 'mod/chat:chat' , $ chatcontext ) ) { $ chatdetails [ 'chatmethod' ] = $ CFG -> chat_method ; $ chatdetails [ 'keepdays' ] = $ chat -> keepdays ; $ chatdetails [ 'studentlogs' ] = $ chat -> studentlogs ; $ chatdetails [ 'chattime' ] = $ chat -> chattime ; $ chatdetails [ 'schedule' ] = $ chat -> schedule ; } if ( has_capability ( 'moodle/course:manageactivities' , $ chatcontext ) ) { $ chatdetails [ 'timemodified' ] = $ chat -> timemodified ; $ chatdetails [ 'section' ] = $ chat -> section ; $ chatdetails [ 'visible' ] = $ chat -> visible ; $ chatdetails [ 'groupmode' ] = $ chat -> groupmode ; $ chatdetails [ 'groupingid' ] = $ chat -> groupingid ; } $ returnedchats [ ] = $ chatdetails ; } } $ result = array ( ) ; $ result [ 'chats' ] = $ returnedchats ; $ result [ 'warnings' ] = $ warnings ; return $ result ; }
Returns a list of chats in a provided list of courses,
if no list is provided all chats that the user can view will be returned.

@param array $courseids the course ids
@return array of chats details
@since Moodle 3.0
Returns a list of chats in a provided list of courses if no list is provided all chats that the user can view will be returned .