public static function mark_all_messages_as_read($useridto, $useridfrom) {
        global $USER, $CFG;

        // Check if messaging is enabled.
        if (empty($CFG->messaging)) {
            throw new moodle_exception('disabled', 'message');
        }

        $params = self::validate_parameters(
            self::mark_all_messages_as_read_parameters(),
            array(
                'useridto' => $useridto,
                'useridfrom' => $useridfrom,
            )
        );

        $context = context_system::instance();
        self::validate_context($context);

        $useridto = $params['useridto'];
        $useridfrom = $params['useridfrom'];

        if (!empty($useridto)) {
            if (core_user::is_real_user($useridto)) {
                $userto = core_user::get_user($useridto, '*', MUST_EXIST);
            } else {
                throw new moodle_exception('invaliduser');
            }
        }

        if (!empty($useridfrom)) {
            // We use get_user here because the from user can be the noreply or support user.
            $userfrom = core_user::get_user($useridfrom, '*', MUST_EXIST);
        }

        // Check if the current user is the sender/receiver or just a privileged user.
        if ($useridto != $USER->id and $useridfrom != $USER->id and
            // The deleteanymessage cap seems more reasonable here than readallmessages.
             !has_capability('moodle/site:deleteanymessage', $context)) {
            throw new moodle_exception('accessdenied', 'admin');
        }

        if ($useridfrom) {
            if ($conversationid = \core_message\api::get_conversation_between_users([$useridto, $useridfrom])) {
                \core_message\api::mark_all_messages_as_read($useridto, $conversationid);
            }
        } else {
            \core_message\api::mark_all_messages_as_read($useridto);
        }

        return true;
    }
public static function mark_all_messages_as_read($useridto, $useridfrom) {
        global $USER, $CFG;

        // Check if messaging is enabled.
        if (empty($CFG->messaging)) {
            throw new moodle_exception('disabled', 'message');
        }

        $params = self::validate_parameters(
            self::mark_all_messages_as_read_parameters(),
            array(
                'useridto' => $useridto,
                'useridfrom' => $useridfrom,
            )
        );

        $context = context_system::instance();
        self::validate_context($context);

        $useridto = $params['useridto'];
        $useridfrom = $params['useridfrom'];

        if (!empty($useridto)) {
            if (core_user::is_real_user($useridto)) {
                $userto = core_user::get_user($useridto, '*', MUST_EXIST);
            } else {
                throw new moodle_exception('invaliduser');
            }
        }

        if (!empty($useridfrom)) {
            // We use get_user here because the from user can be the noreply or support user.
            $userfrom = core_user::get_user($useridfrom, '*', MUST_EXIST);
        }

        // Check if the current user is the sender/receiver or just a privileged user.
        if ($useridto != $USER->id and $useridfrom != $USER->id and
            // The deleteanymessage cap seems more reasonable here than readallmessages.
             !has_capability('moodle/site:deleteanymessage', $context)) {
            throw new moodle_exception('accessdenied', 'admin');
        }

        if ($useridfrom) {
            if ($conversationid = \core_message\api::get_conversation_between_users([$useridto, $useridfrom])) {
                \core_message\api::mark_all_messages_as_read($useridto, $conversationid);
            }
        } else {
            \core_message\api::mark_all_messages_as_read($useridto);
        }

        return true;
    }
public static function mark_all_messages_as_read ( $ useridto , $ useridfrom ) { global $ USER , $ CFG ; // Check if messaging is enabled. if ( empty ( $ CFG -> messaging ) ) { throw new moodle_exception ( 'disabled' , 'message' ) ; } $ params = self :: validate_parameters ( self :: mark_all_messages_as_read_parameters ( ) , array ( 'useridto' => $ useridto , 'useridfrom' => $ useridfrom , ) ) ; $ context = context_system :: instance ( ) ; self :: validate_context ( $ context ) ; $ useridto = $ params [ 'useridto' ] ; $ useridfrom = $ params [ 'useridfrom' ] ; if ( ! empty ( $ useridto ) ) { if ( core_user :: is_real_user ( $ useridto ) ) { $ userto = core_user :: get_user ( $ useridto , '*' , MUST_EXIST ) ; } else { throw new moodle_exception ( 'invaliduser' ) ; } } if ( ! empty ( $ useridfrom ) ) { // We use get_user here because the from user can be the noreply or support user. $ userfrom = core_user :: get_user ( $ useridfrom , '*' , MUST_EXIST ) ; } // Check if the current user is the sender/receiver or just a privileged user. if ( $ useridto != $ USER -> id and $ useridfrom != $ USER -> id and // The deleteanymessage cap seems more reasonable here than readallmessages. ! has_capability ( 'moodle/site:deleteanymessage' , $ context ) ) { throw new moodle_exception ( 'accessdenied' , 'admin' ) ; } if ( $ useridfrom ) { if ( $ conversationid = \ core_message \ api :: get_conversation_between_users ( [ $ useridto , $ useridfrom ] ) ) { \ core_message \ api :: mark_all_messages_as_read ( $ useridto , $ conversationid ) ; } } else { \ core_message \ api :: mark_all_messages_as_read ( $ useridto ) ; } return true ; }
Mark all messages as read function.

@deprecated since 3.6
@throws invalid_parameter_exception
@throws moodle_exception
@param  int      $useridto       the user id who received the message
@param  int      $useridfrom     the user id who send the message. -10 or -20 for no-reply or support user
@return external_description
@since  3.2
Mark all messages as read function .