You are here

function varbase_core_tokens in Varbase Core 8.7

Same name and namespace in other branches
  1. 8.8 varbase_core.tokens.inc \varbase_core_tokens()
  2. 8.4 varbase_core.tokens.inc \varbase_core_tokens()
  3. 8.5 varbase_core.tokens.inc \varbase_core_tokens()
  4. 8.6 varbase_core.tokens.inc \varbase_core_tokens()
  5. 9.0.x varbase_core.tokens.inc \varbase_core_tokens()

Implements hook_tokens().

File

./varbase_core.tokens.inc, line 38
Contains varbase_core.tokens.inc.

Code

function varbase_core_tokens($type, $tokens, array $data, array $options, BubbleableMetadata $bubbleable_metadata) {
  $replacements = [];
  if ($type == 'site') {
    foreach ($tokens as $name => $original) {
      switch ($name) {
        case 'origin-url':

          // Until #1088112: Introduce a token to get site's base URL is
          // committed,
          // https://www.drupal.org/project/drupal/issues/1088112
          // let's use a custom token. Let's call it: [site:origin-url].
          // No language prefix in the url.
          // https://www.drupal.org/project/varbase_core/issues/3106793
          // -----------------------------------------------------------------

          /** @var \Symfony\Component\HttpFoundation\Request $origin_url */
          $origin_url = \Drupal::request()
            ->getSchemeAndHttpHost() . \Drupal::request()
            ->getBaseUrl();
          $bubbleable_metadata
            ->addCacheContexts([
            'url.site',
          ]);
          $replacements[$original] = $origin_url;
          break;
      }
    }
  }
  elseif ($type == 'default-active-theme') {
    foreach ($tokens as $name => $original) {
      switch ($name) {
        case 'path':
          $replacements[$original] = \Drupal::theme()
            ->getActiveTheme()
            ->getPath();
          break;
      }
    }
  }
  return $replacements;
}