eleven-8.x-1.0-beta5/elevenformsuggestions/elevenformsuggestions.module
elevenformsuggestions/elevenformsuggestions.module
<?php /** * @file * Provides hooks for elevenformsuggestions module. */ use Drupal\Core\Form\FormStateInterface; use Drupal\Core\Render\Element; function elevenformsuggestions_theme_suggestions_input(array $variables) { $suggestions = []; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'input___form_id__'. $variables['element']['#form_id']; $suggestions[] = 'input__'. $variables['element']['#type'] . '___form_id__' . $variables['element']['#form_id']; } return $suggestions; kint($suggestions); } /** * Implements hook_preprocess_form_element(). */ function elevenformsuggestions_preprocess_form_element(array &$variables) { if (!isset($variables['label'])) { return; } if (isset($variables['element']['#form_id'])) { $variables['label']['#form_id'] = $variables['element']['#form_id']; } if (isset($variables['element']['#type'])) { $variables['label']['#form_element_type'] = $variables['element']['#type']; } } /** * Implements hook_theme_suggestions_form_element(). */ function elevenformsuggestions_theme_suggestions_form_element(array $variables) { $suggestions = ['form_element__type__' . $variables['element']['#type']]; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'form_element__form_id__' . $variables['element']['#form_id']; $suggestions[] = 'form_element__' . $variables['element']['#type'] . '___form_id__' . $variables['element']['#form_id']; } return $suggestions; } /** * Implements hook_theme_suggestions_form_element_label(). */ function elevenformsuggestions_theme_suggestions_form_element_label(array $variables) { $suggestions = []; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'form_element_label__form-id__' . $variables['element']['#form_id']; } if (isset($variables['element']['#form_element_type']) && isset($variables['element']['#form_id'])) { $suggestions[] = 'form_element_label__' . $variables['element']['#form_element_type'] . '___form_id__'. $variables['element']['#form_id']; } return $suggestions; } function elevenformsuggestions_theme_suggestions_form(array $variables) { $suggestions = []; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'form___form-id__' . $variables['element']['#form_id']; } return $suggestions; } /** * Implements hook_theme_suggestions_details(). */ function elevenformsuggestions_theme_suggestions_details(array $variables) { $suggestions = []; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'details___form-id__' . $variables['element']['#form_id']; } return $suggestions; } /** * Implements hook_theme_suggestions_select(). */ function elevenformsuggestions_theme_suggestions_select(array $variables) { $suggestions = []; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'select___form-id__' . $variables['element']['#form_id']; } return $suggestions; } /** * Implements hook_theme_suggestions_select(). */ function elevenformsuggestions_theme_suggestions_fieldset(array $variables) { $suggestions = []; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'fieldset___form-id__' . $variables['element']['#form_id']; } return $suggestions; } function elevenformsuggestions_theme_suggestions_checkboxes(array $variables) { $suggestions = []; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'checkboxes___form-id__' . $variables['element']['#form_id']; } return $suggestions; } function elevenformsuggestions_theme_suggestions_radios(array $variables) { $suggestions = []; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'radios___form-id__' . $variables['element']['#form_id']; } return $suggestions; } function elevenformsuggestions_theme_suggestions_textarea(array $variables) { $suggestions = []; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'textarea___form-id__' . $variables['element']['#form_id']; } return $suggestions; } function elevenformsuggestions_theme_suggestions_vertical_tabs(array $variables) { $suggestions = []; if (isset($variables['element']['#form_id'])) { $suggestions[] = 'vertical_tabs___form-id__' . $variables['element']['#form_id']; } return $suggestions; } /** * Implements hook_form_alter(). */ function elevenformsuggestions_form_alter(&$form, FormStateInterface $form_state, $form_id) { elevenformsuggestions_attach_form_id($form, $form_id); } /** * Attaches form id to all form elements. * * @param $form * The form or form element which children should have form id attached. * @param $form_id * The form id attached to form elements. * * @return array */ function elevenformsuggestions_attach_form_id(&$form, $form_id) { foreach (Element::children($form) as $child) { if (!isset($form[$child]['#form_id'])) { $form[$child]['#form_id'] = $form_id; } elevenformsuggestions_attach_form_id($form[$child], $form_id); } }