You are here

function browserclass_tokens in Browser Class 7

Implements hook_tokens().

File

./browserclass.tokens.inc, line 73
Builds placeholder replacement tokens for browser-related data.

Code

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

  // Browser class tokens.
  if ($type == 'browserclass') {
    foreach ($tokens as $name => $original) {
      switch ($name) {
        case 'browser-classes':
          $browser_classes = implode(' ', browserclass_get_classes());
          $replacements[$original] = check_plain($browser_classes);
          break;
        case 'browser':
          $browser = implode(' ', browserclass_get_classes(BROWSERCLASS_BROWSER));
          $replacements[$original] = check_plain($browser);
          break;
        case 'platform':
          $platform = implode(' ', browserclass_get_classes(BROWSERCLASS_PLATFORM));
          $replacements[$original] = check_plain($platform);
          break;
        case 'device':
          $device = implode(' ', browserclass_get_classes(BROWSERCLASS_MOBILE));
          $replacements[$original] = check_plain($device);
          break;
        case 'hook-classes':
          $hook_classes = implode(' ', browserclass_get_classes(BROWSERCLASS_OTHER_CLASSES));
          $replacements[$original] = check_plain($hook_classes);
          break;
      }
    }
  }

  // User tokens.
  if ($type == 'user') {
    foreach ($tokens as $name => $original) {
      switch ($name) {
        case 'browserclass':
          $browser_classes = implode(' ', browserclass_get_classes());
          $replacements[$original] = check_plain($browser_classes);
          break;
      }
    }

    // Chained token relationships.
    if ($browserclass_tokens = token_find_with_prefix($tokens, 'browserclass')) {
      $replacements += token_generate('browserclass', $browserclass_tokens, [], $options);
    }
  }

  // Site information tokens.
  if ($type == 'site') {
    foreach ($tokens as $name => $original) {
      switch ($name) {
        case 'browserclass':
          $browser_classes = implode(' ', browserclass_get_classes());
          $replacements[$original] = check_plain($browser_classes);
          break;
      }
    }

    // Chained token relationships.
    if ($browserclass_tokens = token_find_with_prefix($tokens, 'browserclass')) {
      $replacements += token_generate('browserclass', $browserclass_tokens, [], $options);
    }
  }
  return $replacements;
}