original_string: protected function find_existing_lti_type($data) {
          global $DB;
          if ($ltitypeid = $this->get_mappingid('ltitype', $data->id)) {
              return $ltitypeid;
          }
  
          $ltitype = null;
          $params = (array)$data;
          if ($this->task->is_samesite()) {
              // If we are restoring on the same site try to find lti type with the same id.
              $sql = 'id = :id AND course = :course';
              $sql .= ($data->toolproxyid) ? ' AND toolproxyid = :toolproxyid' : ' AND toolproxyid IS NULL';
              if ($DB->record_exists_select('lti_types', $sql, $params)) {
                  $this->set_mapping('ltitype', $data->id, $data->id);
                  if ($data->toolproxyid) {
                      $this->set_mapping('ltitoolproxy', $data->toolproxyid, $data->toolproxyid);
                  }
                  return $data->id;
              }
          }
  
          if ($data->course != $this->get_courseid()) {
              // Site tools are not backed up and are not restored.
              return null;
          }
  
          // Now try to find the same type on the current site available in this course.
          // Compare only fields baseurl, course and name, if they are the same we assume it is the same tool.
          // LTI2 is not possible in the course so we add "lt.toolproxyid IS NULL" to the query.
          $sql = 'SELECT id
              FROM {lti_types}
             WHERE ' . $DB->sql_compare_text('baseurl', 255) . ' = ' . $DB->sql_compare_text(':baseurl', 255) . ' AND
                   course = :course AND name = :name AND toolproxyid IS NULL';
          if ($ltitype = $DB->get_record_sql($sql, $params, IGNORE_MULTIPLE)) {
              $this->set_mapping('ltitype', $data->id, $ltitype->id);
              return $ltitype->id;
          }
  
          return null;
      }
code: protected function find_existing_lti_type($data) {
          global $DB;
          if ($ltitypeid = $this->get_mappingid('ltitype', $data->id)) {
              return $ltitypeid;
          }
  
          $ltitype = null;
          $params = (array)$data;
          if ($this->task->is_samesite()) {
              // If we are restoring on the same site try to find lti type with the same id.
              $sql = 'id = :id AND course = :course';
              $sql .= ($data->toolproxyid) ? ' AND toolproxyid = :toolproxyid' : ' AND toolproxyid IS NULL';
              if ($DB->record_exists_select('lti_types', $sql, $params)) {
                  $this->set_mapping('ltitype', $data->id, $data->id);
                  if ($data->toolproxyid) {
                      $this->set_mapping('ltitoolproxy', $data->toolproxyid, $data->toolproxyid);
                  }
                  return $data->id;
              }
          }
  
          if ($data->course != $this->get_courseid()) {
              // Site tools are not backed up and are not restored.
              return null;
          }
  
          // Now try to find the same type on the current site available in this course.
          // Compare only fields baseurl, course and name, if they are the same we assume it is the same tool.
          // LTI2 is not possible in the course so we add "lt.toolproxyid IS NULL" to the query.
          $sql = 'SELECT id
              FROM {lti_types}
             WHERE ' . $DB->sql_compare_text('baseurl', 255) . ' = ' . $DB->sql_compare_text(':baseurl', 255) . ' AND
                   course = :course AND name = :name AND toolproxyid IS NULL';
          if ($ltitype = $DB->get_record_sql($sql, $params, IGNORE_MULTIPLE)) {
              $this->set_mapping('ltitype', $data->id, $ltitype->id);
              return $ltitype->id;
          }
  
          return null;
      }
code_tokens: protected function find_existing_lti_type ( $ data ) { global $ DB ; if ( $ ltitypeid = $ this -> get_mappingid ( 'ltitype' , $ data -> id ) ) { return $ ltitypeid ; } $ ltitype = null ; $ params = ( array ) $ data ; if ( $ this -> task -> is_samesite ( ) ) { // If we are restoring on the same site try to find lti type with the same id. $ sql = 'id = :id AND course = :course' ; $ sql .= ( $ data -> toolproxyid ) ? ' AND toolproxyid = :toolproxyid' : ' AND toolproxyid IS NULL' ; if ( $ DB -> record_exists_select ( 'lti_types' , $ sql , $ params ) ) { $ this -> set_mapping ( 'ltitype' , $ data -> id , $ data -> id ) ; if ( $ data -> toolproxyid ) { $ this -> set_mapping ( 'ltitoolproxy' , $ data -> toolproxyid , $ data -> toolproxyid ) ; } return $ data -> id ; } } if ( $ data -> course != $ this -> get_courseid ( ) ) { // Site tools are not backed up and are not restored. return null ; } // Now try to find the same type on the current site available in this course. // Compare only fields baseurl, course and name, if they are the same we assume it is the same tool. // LTI2 is not possible in the course so we add "lt.toolproxyid IS NULL" to the query. $ sql = 'SELECT id
              FROM {lti_types}
             WHERE ' . $ DB -> sql_compare_text ( 'baseurl' , 255 ) . ' = ' . $ DB -> sql_compare_text ( ':baseurl' , 255 ) . ' AND
                   course = :course AND name = :name AND toolproxyid IS NULL' ; if ( $ ltitype = $ DB -> get_record_sql ( $ sql , $ params , IGNORE_MULTIPLE ) ) { $ this -> set_mapping ( 'ltitype' , $ data -> id , $ ltitype -> id ) ; return $ ltitype -> id ; } return null ; }
docstring: Attempts to find existing record in lti_type
  @param stdClass $data
  @return int|null field lti_types.id or null if tool is not found
docstring_tokens: Attempts to find existing record in lti_type