You are here

function rules_forms_form_alter in Rules Forms Support 7

Same name and namespace in other branches
  1. 7.2 rules_forms.module \rules_forms_form_alter()

Implements hook_form_alter().

File

./rules_forms.module, line 69
Rules Forms Support provides events, conditions, and actions for site forms.

Code

function rules_forms_form_alter(&$form, &$form_state, $form_id) {
  $form_info = rules_forms_get_form_info($form_id);
  if ($form_info !== FALSE) {

    // Set elements for form events.
    $entity_type = isset($form_state['entity_type']) ? $form_state['entity_type'] : NULL;
    $entity = isset($entity_type) ? $form_state[$entity_type] : NULL;
    rules_forms_event_build($form, $form_state, $form_id, $entity, $entity_type);
    $form['#validate'][] = 'rules_forms_event_validate';
    $form['#submit'][] = 'rules_forms_event_submit';
    $form['#after_build'][] = 'rules_forms_after_build';

    // Add button level validation and submission handling.
    if ($form_info['buttons'] && isset($form_info['submit'])) {
      foreach ($form_info['submit'] as $element_id => $label) {
        $element =& _rules_forms_get_element($form, $element_id);
        $element['#rules_forms_element_id'] = $element_id;
        $element['#validate'][] = 'rules_forms_event_button_validate';
        $element['#submit'][] = 'rules_forms_event_button_submit';
      }
    }
  }
  elseif (!empty($_SESSION['rules_forms_message'])) {

    // Display form ID message if enabled for this session.
    $uri = drupal_get_destination();
    $link = l($form_id, RULES_FORMS_ADMIN_PATH . '/' . $form_id . '/activate/' . urlencode(trim($uri['destination'], '/')));
    $msg = t('Activate events for !form.', array(
      '!form' => $link,
    ));
    drupal_set_message($msg, 'status', FALSE);
  }
}