You are here

function rules_forms_add_element_id in Rules 6

Add element IDs as prefix/suffix code to all form elements.

1 call to rules_forms_add_element_id()
rules_forms_after_build in rules_forms/rules_forms.module
Add element IDs on the form if the setting is enabled. Add submit and validation callbacks to form, buttons, etc. to invoke corresponding events.

File

rules_forms/rules_forms.module, line 98
Rules forms module.

Code

function rules_forms_add_element_id(&$form, $parent = '') {
  $bracket = $parent === '' ? '' : ']';
  foreach (element_children($form) as $key) {
    if (isset($form[$key]['#type'])) {
      if ($form[$key]['#type'] === 'hidden' || $form[$key]['#type'] === 'token') {
        $element_id = '<div class="rules_forms_element_id">' . t('Hidden element ID: %elem', array(
          '%elem' => $parent . $key . $bracket,
        )) . '</div>';
      }
      else {
        $element_id = '<div class="rules_forms_element_id">' . t('Element ID: %elem', array(
          '%elem' => $parent . $key . $bracket,
        )) . '</div>';
      }
      $form[$key]['#suffix'] = isset($form[$key]['#suffix']) ? $form[$key]['#suffix'] . $element_id : $element_id;
    }
    else {
      $element_id = '<div class="rules_forms_element_id">' . t('Container element ID: %elem', array(
        '%elem' => $parent . $key . $bracket,
      )) . '</div>';
      $form[$key]['#prefix'] = isset($form[$key]['#suffix']) ? $form[$key]['#suffix'] . $element_id : $element_id;
    }

    // recursive call on children
    rules_forms_add_element_id($form[$key], $parent . $key . $bracket . '[');
  }
}