You are here

function organigrams_tokens in Organigrams 8.2

Same name and namespace in other branches
  1. 8 organigrams.module \organigrams_tokens()
  2. 7 organigrams.module \organigrams_tokens()

Implements hook_tokens().

Add content to the organigrams tokens.

File

./organigrams.module, line 229
Extends Taxonomy to create organigrams.

Code

function organigrams_tokens($type, $tokens, array $data, array $options, BubbleableMetadata $bubbleable_metadata) {
  $replacements = [];

  // Check if the type is organigrams.
  if ($type == 'organigrams') {

    // Iterate through the tokens.
    foreach ($tokens as $name => $original) {

      // Load the vocabulary.
      $vocabulary = \Drupal::entityTypeManager()
        ->getStorage('taxonomy_vocabulary')
        ->load($name);

      // Load the taxonomy term tree service.
      $taxonomyTermTree = \Drupal::getContainer()
        ->get('organigrams.taxonomy_term_tree');

      // Create the organigram.
      $organigramsController = new OrganigramsController($taxonomyTermTree);
      $organigram = $organigramsController
        ->viewOrganigram($vocabulary);

      // Put the organigram as value in this token.
      $replacements[$original] = render($organigram);
    }
  }
  return $replacements;
}