You are here

function rules_forms_action_set_element in Rules 6

Action implementation: Set the default value.

Related topics

File

rules_forms/rules_forms.rules.inc, line 257
Rules integration to provide form support

Code

function rules_forms_action_set_element(&$form, $element, $value) {
  $form_element =& _rules_forms_get_element($form, $element);
  if (empty($form_element) || !array_key_exists('#default_value', $form_element)) {
    return;
  }
  $lines = explode("\r\n", $value);

  // Check if the form element is a CCK field
  if (array_key_exists('#field_name', $form_element)) {
    $default_value_key = $form_element['#columns'][0];

    // Check if multiple default values are allowed
    if (isset($form_element['#default_value'][0])) {

      // Unset old default values
      $form_element['#default_value'] = array();
      foreach ($lines as $i => $line) {
        $form_element['#default_value'][$i][$default_value_key] = $line;
      }
    }
    else {
      $form_element['#default_value'][$default_value_key] = $value;
    }
  }
  else {
    if (count($lines) == 1) {
      $form_element['#default_value'] = $value;
    }
    else {
      $form_element['#default_value'] = $lines;
    }
  }
}