You are here

function markdown_tokens in Markdown 8.2

Implements hook_tokens(). @noinspection PhpUnused @noinspection PhpDocSignatureInspection

File

./markdown.module, line 281
Markdown module.

Code

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

  // Supply the various "current-request" based tokens.
  // @todo Remove once provided by core.
  // @see https://www.drupal.org/project/drupal/issues/3136361
  if ($type === 'current-request') {
    $request = \Drupal::request();
    foreach ($tokens as $name => $original) {
      switch ($name) {
        case 'base-path':
          $replacements[$original] = $request
            ->getBasePath();
          break;
        case 'fragment':
          $replacements[$original] = parse_url($request
            ->getRequestUri(), PHP_URL_FRAGMENT);
          break;
        case 'host':
          $replacements[$original] = $request
            ->getHost();
          break;
        case 'password':
          $replacements[$original] = $request
            ->getPassword();
          break;
        case 'path':
          $replacements[$original] = $request
            ->getPathInfo();
          break;
        case 'port':
          $replacements[$original] = $request
            ->getPort();
          break;
        case 'query':
          $replacements[$original] = $request
            ->getQueryString();
          break;
        case 'scheme':
          $replacements[$original] = $request
            ->getScheme();
          break;
        case 'user':
          $replacements[$original] = $request
            ->getUser();
          break;
        case 'uri':
          $replacements[$original] = $request
            ->getRequestUri();
          break;
      }
    }
  }
  return $replacements;
}