--- conditional_fields/conditional_fields.module 2010-04-06 11:57:41.000000000 +0300 +++ conditional_fields/conditional_fields.module 2010-04-06 12:09:48.000000000 +0300 @@ -537,7 +537,7 @@ function conditional_fields_forms_submit /** * Alteration of the node editing form */ -function conditional_fields_node_editing_form(&$form, $form_state) { +function conditional_fields_node_editing_form(&$form, $form_state, $need_unique_ids = FALSE) { $type_name = $form['type']['#value']; // Do nothing if there are no conditional fields @@ -612,7 +612,11 @@ function conditional_fields_node_editing // To do: look if we should make this themeable foreach ($data as $row) { // Add javascript settings for this field - $settings['controlling_fields']['#conditional-' . conditional_fields_form_clean_id($row['control_field_name'])]['#conditional-' . conditional_fields_form_clean_id($row['field_name'])] = array('field_id' => '#conditional-' . conditional_fields_form_clean_id($row['field_name']), 'trigger_values' => $row['trigger_values']); + if ( $need_unique_ids ) { + $settings['controlling_fields']['#conditional-' . conditional_fields_form_clean_id($form[$row['control_field_name']]['#id'])]['#conditional-' . conditional_fields_form_clean_id($form[$row['field_name']]['#id'])] = array('field_id' => '#conditional-' . conditional_fields_form_clean_id($form[$row['field_name']]['#id']), 'trigger_values' => $row['trigger_values']); + } else { + $settings['controlling_fields']['#conditional-' . conditional_fields_form_clean_id($row['control_field_name'])]['#conditional-' . conditional_fields_form_clean_id($row['field_name'])] = array('field_id' => '#conditional-' . conditional_fields_form_clean_id($row['field_name']), 'trigger_values' => $row['trigger_values']); + } // To do: feature, add an array of controlled fields to js to allow for multiple controlling fields for a field. // Build helper arrays @@ -633,15 +637,15 @@ function conditional_fields_node_editing $form[$element]['#conditional_fields_multiple'] = TRUE; } if ($controlling_fields[$element]) { - $form[$element]['#controlling_field'] = $element; + $form[$element]['#controlling_field'] = $need_unique_ids ? $form[$element]['#id'] : $element ; $form[$element]['#theme'] = array('conditional_fields_form_item'); } elseif ($controlled_fields[$element]) { if ($form[$element]['#required']) { conditional_fields_unset_required_field($form[$element]); - $required_fields[$element] = array('field' => $element); + $required_fields[$element] = array('field' => ($need_unique_ids ? $form[$element]['#id'] : $element)); } - $form[$element]['#controlled_field'] = $element; + $form[$element]['#controlled_field'] = $need_unique_ids ? $form[$element]['#id'] : $element ; $form[$element]['#theme'] = array('conditional_fields_form_item'); } } @@ -649,7 +653,7 @@ function conditional_fields_node_editing // Groups if ($controlled_fields[$element]) { // Group markup is still hardcoded. - $form[$element]['#prefix'] = '