Index: conditional_fields.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/conditional_fields/conditional_fields.module,v retrieving revision 1.1.2.22.2.40 diff -u -p -r1.1.2.22.2.40 conditional_fields.module --- conditional_fields.module 11 Jun 2009 14:39:54 -0000 1.1.2.22.2.40 +++ conditional_fields.module 17 Jun 2009 15:10:44 -0000 @@ -197,6 +197,8 @@ function conditional_fields_nodeapi(&$no return; } + $current_values = array(); + foreach ($data as $field) { // We might have to look for the field in a group @@ -222,18 +224,22 @@ function conditional_fields_nodeapi(&$no if ($controlling_group && !$node->content[$controlling_group]['group'][$field['control_field_name']]) { continue; } - + $viewed = FALSE; - - // Create an array with the selected controlling field's values - // Check if the controlling field is viewed as well - foreach ((array)$node->$field['control_field_name'] as $value) { - $current_values[$field['control_field_name']] = $value['value']; - if (!empty($value['value']) && $node->content[$field['control_field_name']]['field']['#access'] == TRUE) { - $viewed = TRUE; - } - } + if (!isset($current_values[$field['control_field_name']])) { + $current_values[$field['control_field_name']] = array(); + + // Create an array with the selected controlling field's values + // Check if the controlling field is viewed as well + foreach ((array)$node->$field['control_field_name'] as $value) { + $current_values[$field['control_field_name']][] = $value['value']; + if (!empty($value['value']) && $node->content[$field['control_field_name']]['field']['#access'] == TRUE) { + $viewed = TRUE; + } + } + } + if ($viewed) { // Hide the controlled field if it is not triggered if (!conditional_fields_is_triggered($current_values[$field['control_field_name']], $field['trigger_values'])) {