function flexiform_conditional_fields_element_condition_met in Flexiform 7
Work out whether a conditional field condition has been met by the values in form_state.
1 call to flexiform_conditional_fields_element_condition_met()
- flexiform_conditional_fields_required_element_validate in flexiform_conditional_fields/
flexiform_conditional_fields.module - Validate elements that have a required dependency.
File
- flexiform_conditional_fields/
flexiform_conditional_fields.module, line 280 - Main module code for flexiform conditional fields integrations.
Code
function flexiform_conditional_fields_element_condition_met($element, $form, &$form_state, $dependency) {
$condition = $dependency['condition'];
$flexiform_element = $element['#flexiform_element'];
// Get the entity and language.
$language = $element['#language'];
$entity = NULL;
if (!empty($element['#entity'])) {
$entity = $element['#entity'];
}
else {
if (!empty($element[$language]['#entity'])) {
$entity = $element[$language]['#entity'];
}
else {
$children = element_children($element[$language]);
$child = reset($children);
if (!empty($element[$language][$child]['#entity'])) {
$entity = $element[$language][$child]['#entity'];
}
}
}
$values = $flexiform_element
->formExtractValues($form, $form_state, $entity, $language);
switch ($condition) {
case 'value':
return conditional_fields_evaluate_dependency('edit', $values, $dependency);
case 'checked':
return !empty($values[0]['value']);
case '!checked':
return empty($values[0]['value']);
case 'empty':
case '!empty':
$is_empty = $flexiform_element
->formIsEmpty($form, $form_state, $entity, $language);
return $condition == '!empty' xor $is_empty;
}
}