original_string: public function is_file_modified($assignment, $user, $plugin, $filename, $fileinfo) {
          $sg = null;
  
          if ($plugin->get_subtype() == 'assignsubmission') {
              $sg = $assignment->get_user_submission($user->id, false);
          } else if ($plugin->get_subtype() == 'assignfeedback') {
              $sg = $assignment->get_user_grade($user->id, false);
          } else {
              return false;
          }
  
          if (!$sg) {
              return true;
          }
          foreach ($plugin->get_files($sg, $user) as $pluginfilename => $file) {
              if ($pluginfilename == $filename) {
                  // Extract the file and compare hashes.
                  $contenthash = '';
                  if (is_array($file)) {
                      $content = reset($file);
                      $contenthash = file_storage::hash_from_string($content);
                  } else {
                      $contenthash = $file->get_contenthash();
                  }
                  if ($contenthash != $fileinfo->get_contenthash()) {
                      return true;
                  } else {
                      return false;
                  }
              }
          }
          return true;
      }
code: public function is_file_modified($assignment, $user, $plugin, $filename, $fileinfo) {
          $sg = null;
  
          if ($plugin->get_subtype() == 'assignsubmission') {
              $sg = $assignment->get_user_submission($user->id, false);
          } else if ($plugin->get_subtype() == 'assignfeedback') {
              $sg = $assignment->get_user_grade($user->id, false);
          } else {
              return false;
          }
  
          if (!$sg) {
              return true;
          }
          foreach ($plugin->get_files($sg, $user) as $pluginfilename => $file) {
              if ($pluginfilename == $filename) {
                  // Extract the file and compare hashes.
                  $contenthash = '';
                  if (is_array($file)) {
                      $content = reset($file);
                      $contenthash = file_storage::hash_from_string($content);
                  } else {
                      $contenthash = $file->get_contenthash();
                  }
                  if ($contenthash != $fileinfo->get_contenthash()) {
                      return true;
                  } else {
                      return false;
                  }
              }
          }
          return true;
      }
code_tokens: public function is_file_modified ( $ assignment , $ user , $ plugin , $ filename , $ fileinfo ) { $ sg = null ; if ( $ plugin -> get_subtype ( ) == 'assignsubmission' ) { $ sg = $ assignment -> get_user_submission ( $ user -> id , false ) ; } else if ( $ plugin -> get_subtype ( ) == 'assignfeedback' ) { $ sg = $ assignment -> get_user_grade ( $ user -> id , false ) ; } else { return false ; } if ( ! $ sg ) { return true ; } foreach ( $ plugin -> get_files ( $ sg , $ user ) as $ pluginfilename => $ file ) { if ( $ pluginfilename == $ filename ) { // Extract the file and compare hashes. $ contenthash = '' ; if ( is_array ( $ file ) ) { $ content = reset ( $ file ) ; $ contenthash = file_storage :: hash_from_string ( $ content ) ; } else { $ contenthash = $ file -> get_contenthash ( ) ; } if ( $ contenthash != $ fileinfo -> get_contenthash ( ) ) { return true ; } else { return false ; } } } return true ; }
docstring: Does this file exist in any of the current files supported by this plugin for this user?
  
  @param assign $assignment - The assignment instance
  @param stdClass $user The user matching this uploaded file
  @param assign_plugin $plugin The matching plugin from the filename
  @param string $filename The parsed filename from the zip
  @param stored_file $fileinfo The info about the extracted file from the zip
  @return bool - True if the file has been modified or is new
docstring_tokens: Does this file exist in any of the current files supported by this plugin for this user?