diff --git a/conditional_fields.module b/conditional_fields.module index 56b65b5..d1c65c1 100644 --- a/conditional_fields.module +++ b/conditional_fields.module @@ -245,6 +245,9 @@ function conditional_fields_element_after_build($element, &$form_state) { $entity_type = $field['#entity_type']; $bundle = $field['#bundle']; } + elseif (isset($field[0]) && isset($field[0]['#entity_type']) && $bundle = _conditional_fields_find_parent_bundle($field)) { + $entity_type = $field[0]['#entity_type']; + } elseif (isset($form['#entity_type'], $form['#bundle'])) { $entity_type = $form['#entity_type']; $bundle = $form['#bundle']; @@ -1983,3 +1986,15 @@ function conditional_fields_features_api() { ), ); } + +// need to return immediate parent as the bundle +function _conditional_fields_find_parent_bundle($field) { + $field_parents = array_reverse($field[0]['#field_parents']); + foreach ($field_parents as $parent) { + if (!is_numeric($parent) && $parent != 'und') { + return $parent; + } + } + + return false; +}