You are here

function fontawesome_requirements in Font Awesome Icons 8.2

Same name and namespace in other branches
  1. 8 fontawesome.install \fontawesome_requirements()
  2. 7.3 fontawesome.install \fontawesome_requirements()
  3. 7 fontawesome.install \fontawesome_requirements()
  4. 7.2 fontawesome.install \fontawesome_requirements()

Implements hook_requirements().

File

./fontawesome.install, line 13
Requirements page for Font Awesome.

Code

function fontawesome_requirements($phase) {
  $requirements = [];

  // Report the version of Font Awesome.
  if ($phase == 'runtime') {
    $requirements['fontawesome'] = [
      'title' => t('Font Awesome 5'),
    ];

    // Load the configuration settings.
    $configuration_settings = \Drupal::config('fontawesome.settings');

    // Check if we are loading assets.
    if (!$configuration_settings
      ->get('load_assets')) {
      $requirements['fontawesome']['severity'] = REQUIREMENT_OK;
      $requirements['fontawesome']['value'] = t('Library being loaded manually');
      $requirements['fontawesome']['description'] = t('The Font Awesome module is configured not to load the Font Awesome library. If this is an error, please see the @adminPage and the Font Awesome module README file for more details.', [
        '@adminPage' => Link::createFromRoute(t('admin page'), 'fontawesome.admin_settings')
          ->toString(),
      ]);
    }
    elseif (fontawesome_check_installed()) {

      // Get the version.
      if ($configuration_settings
        ->get('method') == 'webfonts') {
        $version = t('Webfonts with CSS');
      }
      elseif ($configuration_settings
        ->get('use_cdn')) {
        $version = t('CDN SVG with JS');
      }
      else {
        $version = t('SVG with JS');
      }

      // First check if we're using everything.
      if (is_null($configuration_settings
        ->get('use_solid_file')) === TRUE || $configuration_settings
        ->get('use_solid_file') && $configuration_settings
        ->get('use_regular_file') && $configuration_settings
        ->get('use_light_file') && $configuration_settings
        ->get('use_brands_file')) {

        // Attach the main library.
        $loadedMessages = [
          t('All icons loaded'),
        ];
      }
      else {
        $loadedMessages = [];
        if ($configuration_settings
          ->get('use_solid_file')) {
          $loadedMessages[] = t('Solid icons loaded');
        }
        if ($configuration_settings
          ->get('use_regular_file')) {
          $loadedMessages[] = t('Regular icons loaded');
        }
        if ($configuration_settings
          ->get('use_light_file')) {
          $loadedMessages[] = t('Light icons loaded');
        }
        if ($configuration_settings
          ->get('use_brands_file')) {
          $loadedMessages[] = t('Brands icons loaded');
        }
      }
      $requirements['fontawesome']['severity'] = REQUIREMENT_OK;
      $requirements['fontawesome']['value'] = t('Font Awesome 5 library is installed. Using %version version. (@moreInfoLink)', [
        '%version' => $version,
        '@moreInfoLink' => Link::createFromRoute(t('more information'), 'fontawesome.admin_settings')
          ->toString(),
      ]);
      $requirements['fontawesome']['description'] = [
        '#theme' => 'item_list',
        '#items' => $loadedMessages,
        '#title' => '',
        '#list_type' => 'ul',
        '#attributes' => [],
      ];
    }
    else {
      $requirements['fontawesome']['severity'] = REQUIREMENT_ERROR;
      $requirements['fontawesome']['value'] = t('Not installed');
      $requirements['fontawesome']['description'] = t('The Font Awesome 5 library could not be found. If you want this module to handle loading your FontAwesome assets, please verify Font Awesome 5 is installed correctly or that the CDN has been activated and properly configured. Please see the @adminPage and the Font Awesome module README file for more details.', [
        '@adminPage' => Link::createFromRoute(t('admin page'), 'fontawesome.admin_settings')
          ->toString(),
      ]);
    }
  }
  return $requirements;
}