Skip to content

Instantly share code, notes, and snippets.

@shelane
Created November 16, 2020 20:00
Show Gist options
  • Save shelane/f900e52c6a8f47911d2867f0dd7dd8e4 to your computer and use it in GitHub Desktop.
Save shelane/f900e52c6a8f47911d2867f0dd7dd8e4 to your computer and use it in GitHub Desktop.
custom token
<?php
/**
* @file
* Token related hook implementations.
*/
use Drupal\Core\Render\BubbleableMetadata;
/**
* Implements hook_token_info().
*/
function llnl_site_settings_token_info() {
$types['search'] = [
'name' => t('Search'),
'description' => t('Tokens for search bar placement'),
];
$search['search-bar'] = [
'name' => t('Header search bar'),
'description' => t('The search bar form element'),
];
return [
'types' => $types,
'tokens' => [
'search' => $search,
],
];
}
/**
* Implements hook_tokens().
*/
function llnl_site_settings_tokens($type, $tokens, $data, $options, BubbleableMetadata $bubbleable_metadata) {
$replacements = [];
switch ($type) {
case 'search':
foreach ($tokens as $name => $original) {
switch ($name) {
case 'search-bar':
$replacements[$original] = \Drupal::formBuilder()->getForm('Drupal\llnl_search\Form\HeaderSearchForm');
break;
}
}
}
return $replacements;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment