You are here

function _webform_theme_suggestions in Webform 6.x

Same name and namespace in other branches
  1. 8.5 includes/webform.theme.inc \_webform_theme_suggestions()

Provides alternate named suggestions for a specific theme hook.

Parameters

array $variables: An array of variables passed to the theme hook.

string $hook: The base hook name.

Return value

array An array of theme suggestions.

18 calls to _webform_theme_suggestions()
webform_theme_suggestions_webform in includes/webform.theme.inc
Implements hook_theme_suggestions_HOOK().
webform_theme_suggestions_webform_confirmation in includes/webform.theme.inc
Implements hook_theme_suggestions_HOOK().
webform_theme_suggestions_webform_container_base_html in includes/webform.theme.inc
Implements hook_theme_suggestions_HOOK().
webform_theme_suggestions_webform_container_base_text in includes/webform.theme.inc
Implements hook_theme_suggestions_HOOK().
webform_theme_suggestions_webform_element_base_html in includes/webform.theme.inc
Implements hook_theme_suggestions_HOOK().

... See full list

File

includes/webform.theme.inc, line 975
Theme hooks, preprocessor, and suggestions.

Code

function _webform_theme_suggestions(array $variables, $hook) {
  $suggestions = [];
  if ($hook === 'webform' && isset($variables['element']) && isset($variables['element']['#webform_id'])) {
    $suggestions[] = $hook . '__' . $variables['element']['#webform_id'];
  }
  elseif ($hook === 'webform_submission_form' && isset($variables['form']) && isset($variables['form']['#webform_id'])) {
    $suggestions[] = $hook . '__' . $variables['form']['#webform_id'];
  }
  elseif (strpos($hook, 'webform_element_base_') === 0 || strpos($hook, 'webform_container_base_') === 0) {
    $element = $variables['element'];
    if (!empty($element['#type'])) {
      $type = $element['#type'];
      $name = $element['#webform_key'];
      $suggestions[] = $hook . '__' . $type;
      $suggestions[] = $hook . '__' . $type . '__' . $name;
    }
  }
  else {
    $webform = NULL;
    $webform_submission = NULL;
    $sanitized_view_mode = NULL;
    if (isset($variables['elements']) && isset($variables['elements']['#webform_submission'])) {

      /** @var \Drupal\webform\WebformSubmissionInterface $webform_submission */
      $webform_submission = $variables['elements']['#webform_submission'];
      $webform = $webform_submission
        ->getWebform();
      $sanitized_view_mode = strtr($variables['elements']['#view_mode'], '.', '_');
    }
    elseif (isset($variables['webform_submission'])) {

      /** @var \Drupal\webform\WebformSubmissionInterface $webform_submission */
      $webform_submission = $variables['webform_submission'];
      $webform = $webform_submission
        ->getWebform();
    }
    elseif (isset($variables['webform'])) {

      /** @var \Drupal\webform\WebformInterface $webform */
      $webform = $variables['webform'];
    }
    if ($webform) {
      $suggestions[] = $hook . '__' . $webform
        ->id();
      if (isset($variables['handler'])) {

        /** @var \Drupal\webform\Plugin\WebformHandlerInterface $handler */
        $handler = $variables['handler'];
        $suggestions[] = $hook . '__' . $webform
          ->id() . '__' . $handler
          ->getPluginId();
        $suggestions[] = $hook . '__' . $webform
          ->id() . '__' . $handler
          ->getPluginId() . '__' . $handler
          ->getHandlerId();
      }
      if ($sanitized_view_mode) {
        $suggestions[] = $hook . '__' . $webform
          ->id() . '__' . $sanitized_view_mode;
        $suggestions[] = $hook . '__' . $sanitized_view_mode;
      }
    }
  }
  return $suggestions;
}