? dependent_fields-hide_single.patch
Index: fields/text.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/dependent_fields/fields/Attic/text.inc,v
retrieving revision 1.1.2.5
diff -u -p -r1.1.2.5 text.inc
--- fields/text.inc	9 Jan 2011 18:13:32 -0000	1.1.2.5
+++ fields/text.inc	28 Jan 2011 04:13:04 -0000
@@ -89,7 +89,7 @@ function dependent_fields_text_retrieve_
 
   $multiple = isset($form_value[0]);
 
-  if ($multiple) {
+  if ($multiple && is_array($form_value)) {
     foreach ($form_value as $delta => $item) {
       if (!is_numeric($delta) || isset($item)) {
         continue;
@@ -157,3 +157,4 @@ function dependent_fields_text_allowed_v
   $allowed_values = dependent_fields_filter_allowed_values($all_values, $mapping, $keys);
   return $allowed_values;
 }
+
Index: includes/admin.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/dependent_fields/includes/Attic/admin.inc,v
retrieving revision 1.1.2.2
diff -u -p -r1.1.2.2 admin.inc
--- includes/admin.inc	20 Jan 2011 09:56:53 -0000	1.1.2.2
+++ includes/admin.inc	28 Jan 2011 04:13:04 -0000
@@ -80,6 +80,7 @@ function dependent_fields_widget_setting
   $controller_field = isset($widget['dependent_fields']['controller_field']) ? $widget['dependent_fields']['controller_field'] : '';
   $hide_if_empty = isset($widget['dependent_fields']['hide_if_empty']) ? $widget['dependent_fields']['hide_if_empty'] : FALSE;
   $hide_none = isset($widget['dependent_fields']['hide_none']) ? $widget['dependent_fields']['hide_none'] : FALSE;
+  $hide_single = isset($widget['dependent_fields']['hide_single']) ? $widget['dependent_fields']['hide_single'] : FALSE;
 
   $controlled_fields = dependent_fields_controlled_fields($field, $type);
 
@@ -119,6 +120,12 @@ function dependent_fields_widget_setting
       '#description' => t('For non-required fields, should the None option be hidden from select and button lists'),
       '#default_value' => $hide_none,
     );
+    $form['dependent_fields']['hide_single'] = array(
+      '#type' => 'checkbox',
+      '#title' => t('Hide if Single Option'),
+      '#description' => t('For required fields, should the field be hidden if there is only one option'),
+      '#default_value' => $hide_single,
+    );
     $params = array($widget, $field, $type);
     $form['dependent_fields'] = array_merge($form['dependent_fields'], dependent_fields_invoke_field($field['type'], 'widget_form', $params));
   }
@@ -145,4 +152,5 @@ function dependent_fields_widget_setting
       '#suffix' => '</div>',
     );
   }
-}
\ No newline at end of file
+}
+
Index: includes/form_elements.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/dependent_fields/includes/Attic/form_elements.inc,v
retrieving revision 1.1.2.4
diff -u -p -r1.1.2.4 form_elements.inc
--- includes/form_elements.inc	19 Jan 2011 16:18:47 -0000	1.1.2.4
+++ includes/form_elements.inc	28 Jan 2011 04:13:04 -0000
@@ -111,6 +111,7 @@ function dependent_fields_optionwidgets_
   $field = content_fields($element['#field_name'], $element['#type_name']);
   $info = dependent_fields_build_field_info($field, $form_state);
   if (!empty($info)) {
+    unset($element['#value']);
     $column = $element['#columns'][0];
     $options = &$element[$column]['#options'];
     $option_count = count($element[$column]['#options']);
@@ -139,9 +140,15 @@ function dependent_fields_optionwidgets_
         form_set_value($element, $element['#value'][$column], $form_state);
       }
     }
+    if ($info['hide_single'] && ($option_count == 1)) {      
+      $element['#type'] = 'hidden';
+      $element['#value'] = reset($options);      
+      form_set_value($element, $element['#value'], $form_state);          
+    }
 
     dependent_fields_set_form_state($form_state);
   }
 
   return $element;
-}
\ No newline at end of file
+}
+
Index: includes/plugins.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/dependent_fields/includes/Attic/plugins.inc,v
retrieving revision 1.1.2.1
diff -u -p -r1.1.2.1 plugins.inc
--- includes/plugins.inc	9 Jan 2011 18:13:32 -0000	1.1.2.1
+++ includes/plugins.inc	28 Jan 2011 04:13:04 -0000
@@ -131,6 +131,7 @@ function dependent_fields_build_field_in
     $controlled_fields = dependent_fields_controlled_fields($field, $type);
     $hide_if_empty = $field['widget']['dependent_fields']['hide_if_empty'];
     $hide_none = $field['widget']['dependent_fields']['hide_none'];
+    $hide_single = $field['widget']['dependent_fields']['hide_single'];
     // Check to see if we have either a controlled or controller field
     // If so, there is nothing to do here.
     if (empty($controller_field) && empty($controlled_fields)) {
@@ -141,7 +142,7 @@ function dependent_fields_build_field_in
       'widget' => $field['widget'],
       'hide_if_empty' => $hide_if_empty,
       'hide_none' => $hide_none,
-
+      'hide_single' => $hide_single,
     );
     if (!$omit_field_value) {
       $info['field_value'] = dependent_fields_retrieve_field_value($field, $form_state);
@@ -165,4 +166,5 @@ function dependent_fields_build_field_in
   $info = array_merge($info, dependent_fields_invoke_field($field['type'], 'build_field_info', $params));
 
   return $info;
-}
\ No newline at end of file
+}
+
