You are here

function _webform_token_render_more in Webform 6.x

Same name and namespace in other branches
  1. 8.5 webform.tokens.inc \_webform_token_render_more()

Render webform more element (slideouts) for token descriptions.

Parameters

string $more_title: More title.

string $more: More content.

Return value

string Rendered webform more element.

2 calls to _webform_token_render_more()
webform_token_info in ./webform.tokens.inc
Implements hook_token_info().
webform_token_info_alter in ./webform.module
Implements hook_token_info_alter().

File

./webform.tokens.inc, line 1100
Builds placeholder replacement tokens for webforms and submissions.

Code

function _webform_token_render_more($more_title, $more) {
  $build = [
    '#type' => 'webform_more',
    '#more' => $more,
    '#more_title' => $more_title,
  ];

  // Token info might be called via CLI and not all modules are loaded
  // or an active theme is defined.
  //
  // Prevent the below exceptions:
  // - The theme implementations may not be rendered until all modules
  //   are loaded.
  // - Call to a member function setParser() on array in Twig\Parser->parse().
  //
  // @see \Drupal\Core\Theme\ThemeManager::render

  /** @var \Drupal\Core\Extension\ModuleHandlerInterface $module_handler */
  $module_handler = \Drupal::service('module_handler');

  /** @var \Drupal\webform\WebformThemeManagerInterface $theme_manager */
  $theme_manager = \Drupal::service('webform.theme_manager');
  if (!$module_handler
    ->isLoaded() || !$theme_manager
    ->hasActiveTheme()) {
    return '';
  }
  return (string) \Drupal::service('renderer')
    ->renderPlain($build);
}