? rules-545026.patch
Index: rules_forms/rules_forms.admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/rules/rules_forms/Attic/rules_forms.admin.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 rules_forms.admin.inc
--- rules_forms/rules_forms.admin.inc	30 Jul 2009 18:53:40 -0000	1.1.2.1
+++ rules_forms/rules_forms.admin.inc	13 Aug 2009 10:51:32 -0000
@@ -6,7 +6,7 @@
  * @file
  * Implements forms events management screen.
  */
- 
+
 /**
  * Defines the forms events settings form
  */
@@ -115,4 +115,4 @@ function rules_forms_activate_form_submi
   variable_set('rules_forms_events', $form_events);
   drupal_set_message(t("%form has been activated.", array('%form' => $form_state['form_id_activate'])));
   $form_state['redirect'] = RULES_ADMIN_FORMS_PATH;
-}
\ No newline at end of file
+}
Index: rules_forms/rules_forms.rules.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/rules/rules_forms/Attic/rules_forms.rules.inc,v
retrieving revision 1.1.2.4
diff -u -p -r1.1.2.4 rules_forms.rules.inc
--- rules_forms/rules_forms.rules.inc	12 Aug 2009 14:49:51 -0000	1.1.2.4
+++ rules_forms/rules_forms.rules.inc	13 Aug 2009 10:51:33 -0000
@@ -86,7 +86,7 @@ function rules_forms_rules_action_info()
         ),
       ),
       'module' => 'Rules Forms',
-    ),    
+    ),
     'rules_forms_action_adjust_weight' => array(
       'label' => t('Adjust weight of an element in the form'),
       'arguments' => array(
@@ -143,6 +143,23 @@ function rules_forms_rules_action_info()
       ),
       'module' => 'Rules Forms',
     ),
+    'rules_forms_action_set_element' => array(
+      'label' => t('Set the default value of a form element'),
+      'arguments' => array(
+        'form' => array('type' => 'form', 'label' => t('Form')),
+        'element' => array(
+          'type' => 'string',
+          'label' => t('Form element ID'),
+          'description' => t('The element that should be targeted.') .' '. _rules_forms_element_description(),
+        ),
+        'value' => array(
+          'type' => 'string',
+          'label' => t('Default value'),
+          'description' => t('The value(s) that will be displayed as default. If the form element allows multiple values, enter one value per line.'),
+        ),
+      ),
+      'module' => 'Rules Forms',
+    ),
   );
 }
 
@@ -221,9 +238,8 @@ function rules_forms_element_action_afte
 function rules_forms_disable_field_recurse(&$elements) {
   foreach (element_children($elements) as $key) {
     if (isset($elements[$key]) && $elements[$key]) {
-
       // Recurse through all children elements.
-     rules_forms_disable_field_recurse($elements[$key]);
+      rules_forms_disable_field_recurse($elements[$key]);
     }
   }
 
@@ -292,6 +308,41 @@ function rules_forms_action_set_error(&$
 }
 
 /**
+ * Action implementation: Set the default value.
+ */
+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)) {
+    // Check if multiple default values are allowed
+    if (is_array($form_element['#default_value']) && array_key_exists(0, $form_element['#default_value'])) {
+      // Unset old default values
+      $form_element['#default_value'] = array();
+      $i = 0;
+      foreach ($lines as $line) {
+        $form_element['#default_value'][$i]['value'] = $line;
+        $i++;
+      }
+    }
+    else {
+      $form_element['#default_value']['value'] = $value;
+    }
+  }
+  else {
+    if (count($lines) === 1) {
+      $form_element['#default_value'] = $value;
+    }
+    else {
+      $form_element['#default_value'] = $lines;
+    }
+  }
+}
+
+/**
  * Helper function to extract a reference to a form element by a given name.
  */
 function &_rules_forms_get_element(&$form, $name) {
Index: rules_forms/rules_forms.rules_forms.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/rules/rules_forms/Attic/rules_forms.rules_forms.inc,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 rules_forms.rules_forms.inc
--- rules_forms/rules_forms.rules_forms.inc	4 Aug 2009 16:01:25 -0000	1.1.2.2
+++ rules_forms/rules_forms.rules_forms.inc	13 Aug 2009 10:51:33 -0000
@@ -84,6 +84,14 @@ function rules_forms_action_prefix_suffi
 }
 
 /**
+ * Action set element configuration form.
+ */
+function rules_forms_action_set_element_form($settings, &$form) {
+  $form['settings']['value']['#type'] = 'textarea';
+  $form['settings']['value']['#required'] = FALSE;
+}
+
+/**
  * Label callback for adjusting weights action.
  */
 function rules_forms_action_adjust_weight_label($settings, $argument_labels) {
@@ -141,8 +149,15 @@ function rules_forms_action_set_error_la
 }
 
 /**
+ * Label callback for set default value action.
+ */
+function rules_forms_action_set_element_label($settings, $argument_labels) {
+  return t("Set default value on form element '@element'", array('@element' => $settings['element']));
+}
+
+/**
  * Label callback for element value condition.
  */
 function rules_forms_condition_element_value_label($settings, $argument_labels) {
   return t("Form element '@element' value check", array('@element' => $settings['element']));
-}
\ No newline at end of file
+}
