You are here

function rules_forms_rules_event_info in Rules Forms Support 7

Same name and namespace in other branches
  1. 7.2 rules_forms.rules.inc \rules_forms_rules_event_info()

Implements hook_rules_event_info().

File

./rules_forms.rules.inc, line 18
Rules events, conditions, and actions hooks for Rules Forms module.

Code

function rules_forms_rules_event_info() {
  $form_info = rules_forms_get_form_info();
  $defaults = array(
    'group' => 'Rules Forms',
    'access callback' => 'rules_forms_integration_access',
  );
  $events = array();
  foreach ($form_info as $form_id => $info) {

    // Ignore forms with malformed information.
    if (!isset($info['label']) || $info['label'] == FALSE) {
      continue;
    }
    $events['rules_forms_' . $form_id . '_form_built'] = $defaults + array(
      'label' => t('@form is being built', array(
        '@form' => $info['label'],
      )),
      'variables' => rules_forms_event_variables() + rules_forms_element_variables($form_id),
    );
    $events['rules_forms_' . $form_id . '_form_submit'] = $defaults + array(
      'label' => t('@form is submitted', array(
        '@form' => $info['label'],
      )),
      'variables' => rules_forms_event_variables() + rules_forms_element_variables($form_id),
    );
    $events['rules_forms_' . $form_id . '_form_validate'] = $defaults + array(
      'label' => t('@form is being validated', array(
        '@form' => $info['label'],
      )),
      'variables' => rules_forms_event_variables() + rules_forms_element_variables($form_id),
    );
    if ($info['buttons'] && isset($info['submit'])) {
      foreach ($info['submit'] as $element_id => $label) {

        // Add button validate events.
        $events['rules_forms_' . $form_id . '_button_' . str_replace(':', '_', $element_id) . '_validate'] = $defaults + array(
          'label' => t('@form @button button is being validated', array(
            '@form' => $info['label'],
            '@button' => strtolower($label),
          )),
          'variables' => rules_forms_event_variables() + rules_forms_element_variables($form_id),
        );

        // Add button submit events.
        $events['rules_forms_' . $form_id . '_button_' . str_replace(':', '_', $element_id) . '_submit'] = $defaults + array(
          'label' => t('@form @button button is being submitted', array(
            '@form' => $info['label'],
            '@button' => strtolower($label),
          )),
          'variables' => rules_forms_event_variables() + rules_forms_element_variables($form_id),
        );
      }
    }
  }
  return $events;
}