original_string: public function resolve_font_location($font, $component) {
          global $CFG;
  
          if ($component === 'moodle' or $component === 'core' or empty($component)) {
              if (file_exists("$this->dir/fonts_core/$font")) {
                  return "$this->dir/fonts_core/$font";
              }
              foreach (array_reverse($this->parent_configs) as $parent_config) { // Base first, the immediate parent last.
                  if (file_exists("$parent_config->dir/fonts_core/$font")) {
                      return "$parent_config->dir/fonts_core/$font";
                  }
              }
              if (file_exists("$CFG->dataroot/fonts/$font")) {
                  return "$CFG->dataroot/fonts/$font";
              }
              if (file_exists("$CFG->dirroot/lib/fonts/$font")) {
                  return "$CFG->dirroot/lib/fonts/$font";
              }
              return null;
  
          } else if ($component === 'theme') { // Exception.
              if (file_exists("$this->dir/fonts/$font")) {
                  return "$this->dir/fonts/$font";
              }
              foreach (array_reverse($this->parent_configs) as $parent_config) { // Base first, the immediate parent last.
                  if (file_exists("$parent_config->dir/fonts/$font")) {
                      return "$parent_config->dir/fonts/$font";
                  }
              }
              return null;
  
          } else {
              if (strpos($component, '_') === false) {
                  $component = 'mod_'.$component;
              }
              list($type, $plugin) = explode('_', $component, 2);
  
              if (file_exists("$this->dir/fonts_plugins/$type/$plugin/$font")) {
                  return "$this->dir/fonts_plugins/$type/$plugin/$font";
              }
              foreach (array_reverse($this->parent_configs) as $parent_config) { // Base first, the immediate parent last.
                  if (file_exists("$parent_config->dir/fonts_plugins/$type/$plugin/$font")) {
                      return "$parent_config->dir/fonts_plugins/$type/$plugin/$font";
                  }
              }
              if (file_exists("$CFG->dataroot/fonts_plugins/$type/$plugin/$font")) {
                  return "$CFG->dataroot/fonts_plugins/$type/$plugin/$font";
              }
              $dir = core_component::get_plugin_directory($type, $plugin);
              if (file_exists("$dir/fonts/$font")) {
                  return "$dir/fonts/$font";
              }
              return null;
          }
      }
code: public function resolve_font_location($font, $component) {
          global $CFG;
  
          if ($component === 'moodle' or $component === 'core' or empty($component)) {
              if (file_exists("$this->dir/fonts_core/$font")) {
                  return "$this->dir/fonts_core/$font";
              }
              foreach (array_reverse($this->parent_configs) as $parent_config) { // Base first, the immediate parent last.
                  if (file_exists("$parent_config->dir/fonts_core/$font")) {
                      return "$parent_config->dir/fonts_core/$font";
                  }
              }
              if (file_exists("$CFG->dataroot/fonts/$font")) {
                  return "$CFG->dataroot/fonts/$font";
              }
              if (file_exists("$CFG->dirroot/lib/fonts/$font")) {
                  return "$CFG->dirroot/lib/fonts/$font";
              }
              return null;
  
          } else if ($component === 'theme') { // Exception.
              if (file_exists("$this->dir/fonts/$font")) {
                  return "$this->dir/fonts/$font";
              }
              foreach (array_reverse($this->parent_configs) as $parent_config) { // Base first, the immediate parent last.
                  if (file_exists("$parent_config->dir/fonts/$font")) {
                      return "$parent_config->dir/fonts/$font";
                  }
              }
              return null;
  
          } else {
              if (strpos($component, '_') === false) {
                  $component = 'mod_'.$component;
              }
              list($type, $plugin) = explode('_', $component, 2);
  
              if (file_exists("$this->dir/fonts_plugins/$type/$plugin/$font")) {
                  return "$this->dir/fonts_plugins/$type/$plugin/$font";
              }
              foreach (array_reverse($this->parent_configs) as $parent_config) { // Base first, the immediate parent last.
                  if (file_exists("$parent_config->dir/fonts_plugins/$type/$plugin/$font")) {
                      return "$parent_config->dir/fonts_plugins/$type/$plugin/$font";
                  }
              }
              if (file_exists("$CFG->dataroot/fonts_plugins/$type/$plugin/$font")) {
                  return "$CFG->dataroot/fonts_plugins/$type/$plugin/$font";
              }
              $dir = core_component::get_plugin_directory($type, $plugin);
              if (file_exists("$dir/fonts/$font")) {
                  return "$dir/fonts/$font";
              }
              return null;
          }
      }
code_tokens: public function resolve_font_location ( $ font , $ component ) { global $ CFG ; if ( $ component === 'moodle' or $ component === 'core' or empty ( $ component ) ) { if ( file_exists ( "$this->dir/fonts_core/$font" ) ) { return "$this->dir/fonts_core/$font" ; } foreach ( array_reverse ( $ this -> parent_configs ) as $ parent_config ) { // Base first, the immediate parent last. if ( file_exists ( "$parent_config->dir/fonts_core/$font" ) ) { return "$parent_config->dir/fonts_core/$font" ; } } if ( file_exists ( "$CFG->dataroot/fonts/$font" ) ) { return "$CFG->dataroot/fonts/$font" ; } if ( file_exists ( "$CFG->dirroot/lib/fonts/$font" ) ) { return "$CFG->dirroot/lib/fonts/$font" ; } return null ; } else if ( $ component === 'theme' ) { // Exception. if ( file_exists ( "$this->dir/fonts/$font" ) ) { return "$this->dir/fonts/$font" ; } foreach ( array_reverse ( $ this -> parent_configs ) as $ parent_config ) { // Base first, the immediate parent last. if ( file_exists ( "$parent_config->dir/fonts/$font" ) ) { return "$parent_config->dir/fonts/$font" ; } } return null ; } else { if ( strpos ( $ component , '_' ) === false ) { $ component = 'mod_' . $ component ; } list ( $ type , $ plugin ) = explode ( '_' , $ component , 2 ) ; if ( file_exists ( "$this->dir/fonts_plugins/$type/$plugin/$font" ) ) { return "$this->dir/fonts_plugins/$type/$plugin/$font" ; } foreach ( array_reverse ( $ this -> parent_configs ) as $ parent_config ) { // Base first, the immediate parent last. if ( file_exists ( "$parent_config->dir/fonts_plugins/$type/$plugin/$font" ) ) { return "$parent_config->dir/fonts_plugins/$type/$plugin/$font" ; } } if ( file_exists ( "$CFG->dataroot/fonts_plugins/$type/$plugin/$font" ) ) { return "$CFG->dataroot/fonts_plugins/$type/$plugin/$font" ; } $ dir = core_component :: get_plugin_directory ( $ type , $ plugin ) ; if ( file_exists ( "$dir/fonts/$font" ) ) { return "$dir/fonts/$font" ; } return null ; } }
docstring: Resolves the real font location.
  
  @param string $font name of font file
  @param string $component
  @return string full file path
docstring_tokens: Resolves the real font location .