You are here

public function FontAwesomeManager::getMetadata in Font Awesome Icons 8.2

Loads the Font Awesome icon metadata.

Return value

array The available FontAwesome icon metadata.

Overrides FontAwesomeManagerInterface::getMetadata

2 calls to FontAwesomeManager::getMetadata()
FontAwesomeManager::getIconMetadata in src/FontAwesomeManager.php
Extract metadata for a specific icon.
FontAwesomeManager::getIcons in src/FontAwesomeManager.php
Get icons.

File

src/FontAwesomeManager.php, line 302

Class

FontAwesomeManager
Icon Manager Service for Font Awesome.

Namespace

Drupal\fontawesome

Code

public function getMetadata() {

  // Allow modules and themes to provide their own icon metadata first. If
  // none are provided, use the default metadata file.

  /** @var \Drupal\Component\Discovery\YamlDiscovery $yaml_discovery */
  $yaml_discovery = new YamlDiscovery('fontawesome.iconlist', $this->themeHandler
    ->getThemeDirectories() + $this->moduleHandler
    ->getModuleDirectories());
  $data = $yaml_discovery
    ->findAll();
  $metadata = [];
  if (!empty($data)) {
    foreach ($data as $icons) {
      $metadata = array_merge_recursive($metadata, $icons);
    }
  }
  else {
    $metadata = Yaml::parse(file_get_contents($this
      ->getMetadataFilepath()));
  }

  // Store the name in the metadata.
  foreach ($metadata as $name => &$data) {
    $data['name'] = $name;
  }
  $this->moduleHandler
    ->alter('fontawesome_metadata', $metadata);
  return $metadata;
}