You are here

function google_webfont_loader_api_get_font_list in Webfont Loader 8

Same name and namespace in other branches
  1. 6 google_webfont_loader_api.module \google_webfont_loader_api_get_font_list()
  2. 7 google_webfont_loader_api.module \google_webfont_loader_api_get_font_list()

Retrieve the list of fonts available.

3 calls to google_webfont_loader_api_get_font_list()
GoogleWebfontLoaderApiSettingsForm::buildForm in src/Form/GoogleWebfontLoaderApiSettingsForm.php
Implements \Drupal\Core\Form\FormInterface::buildForm().
google_webfont_loader_api_install in ./google_webfont_loader_api.install
Implements hook_install().
google_webfont_loader_api_page_attachments in ./google_webfont_loader_api.module
Implements hook_page_attachments().

File

./google_webfont_loader_api.module, line 113
Google Webfont Loader API primary file.

Code

function google_webfont_loader_api_get_font_list($reset = FALSE) {
  if ($reset) {
    $listings = google_webfont_loader_api_scan_fontinfo_files('modules');
    $listings = array_merge($listings, google_webfont_loader_api_scan_fontinfo_files('libraries'));
    $listings = array_merge($listings, google_webfont_loader_api_scan_fontinfo_files('themes'));
    $parser = new Parser();
    foreach ($listings as $key => $listing) {
      try {
        $new_key = preg_replace("/[^a-zA-Z0-9]/", "_", $key);
        $listing_array = (array) $listing;
        $listing_array['info'] = $parser
          ->parse(file_get_contents($listing_array['uri']));
        $listing_array['name'] = $new_key;
        unset($listings[$key]);
        $listings[$new_key] = $listing_array;
      } catch (ParseException $e) {
        throw new InfoParserException("Unable to parse {$listing}", $e
          ->getMessage());
      }
    }
  }
  else {
    $config = \Drupal::config('google_webfont_loader_api.settings');
    $listings = $config
      ->get('fontinfo_listing');
  }
  return $listings;
}