You are here

function rules_forms_property_value_form_alter in Rules Forms Support 7.2

Form alter callback for the data_set action.

This function was largely taken from Rules.

2 string references to 'rules_forms_property_value_form_alter'
rules_forms_rules_action_info in ./rules_forms.rules.inc
Implements hook_rules_action_info().
rules_forms_rules_condition_info in ./rules_forms.rules.inc
Implements hook_rules_condition_info().

File

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

Code

function rules_forms_property_value_form_alter(&$form, &$form_state, $options, RulesAbstractPlugin $element) {
  if (!empty($options['init']) && !isset($form_state['rules_element_step'])) {
    $form['negate']['#access'] = FALSE;
    unset($form['parameter']['value']);

    // Make this callback useful for conditions that use a regex field.
    if (isset($form['parameter']['regex'])) {
      unset($form['parameter']['regex']);
    }
    $form['submit'] = array(
      '#type' => 'submit',
      '#value' => t('Continue'),
      '#limit_validation_errors' => array(
        array(
          'parameter',
          'data',
        ),
      ),
      '#submit' => array(
        'rules_form_submit_rebuild',
      ),
    );
    $form_state['rules_element_step'] = 'data_value';

    // Clear the parameter mode for the value parameter, so its gets the proper
    // default value based upon the type of the the selected data on rebuild.
    unset($form_state['parameter_mode']['value']);
  }
  else {

    // Change the data parameter to be not editable.
    $form['parameter']['data']['settings']['#access'] = FALSE;
    $form['parameter']['data']['info'] = array(
      '#prefix' => '<p>',
      '#markup' => t('<strong>Selected data:</strong> %selector', array(
        '%selector' => $element->settings['data:select'],
      )),
      '#suffix' => '</p>',
    );
    $type = $form['parameter']['value']['settings']['value']['#type'];
    if ($type != 'textfield' && $type != 'textarea') {
      $form['parameter']['regex']['#access'] = FALSE;
      $form['parameter']['regex']['settings']['regex']['#type'] = 'value';
      $form['parameter']['regex']['settings']['regex']['#value'] = 0;
    }
  }
}