original_string: public static function get_messages($userid, $otheruserid, $timedeleted = 0, $limitfrom = 0, $limitnum = 0,
                                          $sort = 'timecreated ASC', $timefrom = 0, $timeto = 0) {
          global $DB;
  
          $hash = self::get_conversation_hash([$userid, $otheruserid]);
  
          $sql = "SELECT m.id, m.useridfrom, m.subject, m.fullmessage, m.fullmessagehtml,
                         m.fullmessageformat, m.fullmessagetrust, m.smallmessage, m.timecreated,
                         mc.contextid, muaread.timecreated AS timeread
                    FROM {message_conversations} mc
              INNER JOIN {messages} m
                      ON m.conversationid = mc.id
               LEFT JOIN {message_user_actions} muaread
                      ON (muaread.messageid = m.id
                     AND muaread.userid = :userid1
                     AND muaread.action = :readaction)";
          $params = ['userid1' => $userid, 'readaction' => api::MESSAGE_ACTION_READ, 'convhash' => $hash];
  
          if (empty($timedeleted)) {
              $sql .= " LEFT JOIN {message_user_actions} mua
                               ON (mua.messageid = m.id
                              AND mua.userid = :userid2
                              AND mua.action = :deleteaction
                              AND mua.timecreated is NOT NULL)";
          } else {
              $sql .= " INNER JOIN {message_user_actions} mua
                                ON (mua.messageid = m.id
                               AND mua.userid = :userid2
                               AND mua.action = :deleteaction
                               AND mua.timecreated = :timedeleted)";
              $params['timedeleted'] = $timedeleted;
          }
  
          $params['userid2'] = $userid;
          $params['deleteaction'] = api::MESSAGE_ACTION_DELETED;
  
          $sql .= " WHERE mc.convhash = :convhash";
  
          if (!empty($timefrom)) {
              $sql .= " AND m.timecreated >= :timefrom";
              $params['timefrom'] = $timefrom;
          }
  
          if (!empty($timeto)) {
              $sql .= " AND m.timecreated <= :timeto";
              $params['timeto'] = $timeto;
          }
  
          if (empty($timedeleted)) {
              $sql .= " AND mua.id is NULL";
          }
  
          $sql .= " ORDER BY m.$sort";
  
          $messages = $DB->get_records_sql($sql, $params, $limitfrom, $limitnum);
          foreach ($messages as &$message) {
              $message->useridto = ($message->useridfrom == $userid) ? $otheruserid : $userid;
          }
  
          return $messages;
      }
code: public static function get_messages($userid, $otheruserid, $timedeleted = 0, $limitfrom = 0, $limitnum = 0,
                                          $sort = 'timecreated ASC', $timefrom = 0, $timeto = 0) {
          global $DB;
  
          $hash = self::get_conversation_hash([$userid, $otheruserid]);
  
          $sql = "SELECT m.id, m.useridfrom, m.subject, m.fullmessage, m.fullmessagehtml,
                         m.fullmessageformat, m.fullmessagetrust, m.smallmessage, m.timecreated,
                         mc.contextid, muaread.timecreated AS timeread
                    FROM {message_conversations} mc
              INNER JOIN {messages} m
                      ON m.conversationid = mc.id
               LEFT JOIN {message_user_actions} muaread
                      ON (muaread.messageid = m.id
                     AND muaread.userid = :userid1
                     AND muaread.action = :readaction)";
          $params = ['userid1' => $userid, 'readaction' => api::MESSAGE_ACTION_READ, 'convhash' => $hash];
  
          if (empty($timedeleted)) {
              $sql .= " LEFT JOIN {message_user_actions} mua
                               ON (mua.messageid = m.id
                              AND mua.userid = :userid2
                              AND mua.action = :deleteaction
                              AND mua.timecreated is NOT NULL)";
          } else {
              $sql .= " INNER JOIN {message_user_actions} mua
                                ON (mua.messageid = m.id
                               AND mua.userid = :userid2
                               AND mua.action = :deleteaction
                               AND mua.timecreated = :timedeleted)";
              $params['timedeleted'] = $timedeleted;
          }
  
          $params['userid2'] = $userid;
          $params['deleteaction'] = api::MESSAGE_ACTION_DELETED;
  
          $sql .= " WHERE mc.convhash = :convhash";
  
          if (!empty($timefrom)) {
              $sql .= " AND m.timecreated >= :timefrom";
              $params['timefrom'] = $timefrom;
          }
  
          if (!empty($timeto)) {
              $sql .= " AND m.timecreated <= :timeto";
              $params['timeto'] = $timeto;
          }
  
          if (empty($timedeleted)) {
              $sql .= " AND mua.id is NULL";
          }
  
          $sql .= " ORDER BY m.$sort";
  
          $messages = $DB->get_records_sql($sql, $params, $limitfrom, $limitnum);
          foreach ($messages as &$message) {
              $message->useridto = ($message->useridfrom == $userid) ? $otheruserid : $userid;
          }
  
          return $messages;
      }
code_tokens: public static function get_messages ( $ userid , $ otheruserid , $ timedeleted = 0 , $ limitfrom = 0 , $ limitnum = 0 , $ sort = 'timecreated ASC' , $ timefrom = 0 , $ timeto = 0 ) { global $ DB ; $ hash = self :: get_conversation_hash ( [ $ userid , $ otheruserid ] ) ; $ sql = "SELECT m.id, m.useridfrom, m.subject, m.fullmessage, m.fullmessagehtml,
                         m.fullmessageformat, m.fullmessagetrust, m.smallmessage, m.timecreated,
                         mc.contextid, muaread.timecreated AS timeread
                    FROM {message_conversations} mc
              INNER JOIN {messages} m
                      ON m.conversationid = mc.id
               LEFT JOIN {message_user_actions} muaread
                      ON (muaread.messageid = m.id
                     AND muaread.userid = :userid1
                     AND muaread.action = :readaction)" ; $ params = [ 'userid1' => $ userid , 'readaction' => api :: MESSAGE_ACTION_READ , 'convhash' => $ hash ] ; if ( empty ( $ timedeleted ) ) { $ sql .= " LEFT JOIN {message_user_actions} mua
                               ON (mua.messageid = m.id
                              AND mua.userid = :userid2
                              AND mua.action = :deleteaction
                              AND mua.timecreated is NOT NULL)" ; } else { $ sql .= " INNER JOIN {message_user_actions} mua
                                ON (mua.messageid = m.id
                               AND mua.userid = :userid2
                               AND mua.action = :deleteaction
                               AND mua.timecreated = :timedeleted)" ; $ params [ 'timedeleted' ] = $ timedeleted ; } $ params [ 'userid2' ] = $ userid ; $ params [ 'deleteaction' ] = api :: MESSAGE_ACTION_DELETED ; $ sql .= " WHERE mc.convhash = :convhash" ; if ( ! empty ( $ timefrom ) ) { $ sql .= " AND m.timecreated >= :timefrom" ; $ params [ 'timefrom' ] = $ timefrom ; } if ( ! empty ( $ timeto ) ) { $ sql .= " AND m.timecreated <= :timeto" ; $ params [ 'timeto' ] = $ timeto ; } if ( empty ( $ timedeleted ) ) { $ sql .= " AND mua.id is NULL" ; } $ sql .= " ORDER BY m.$sort" ; $ messages = $ DB -> get_records_sql ( $ sql , $ params , $ limitfrom , $ limitnum ) ; foreach ( $ messages as & $ message ) { $ message -> useridto = ( $ message -> useridfrom == $ userid ) ? $ otheruserid : $ userid ; } return $ messages ; }
docstring: Helper function to retrieve the messages between two users
  
  TODO: This function should be removed once the related web services go through final deprecation.
  The related web services are data_for_messagearea_messages AND data_for_messagearea_get_most_recent_message.
  Followup: MDL-63261
  
  @param int $userid the current user
  @param int $otheruserid the other user
  @param int $timedeleted the time the message was deleted
  @param int $limitfrom
  @param int $limitnum
  @param string $sort
  @param int $timefrom the time from the message being sent
  @param int $timeto the time up until the message being sent
  @return array of messages
docstring_tokens: Helper function to retrieve the messages between two users