function field_conditional_state_entity_view in Field Conditional States 7
Implements hook_entity_view().
Hide field in entity view if state for controlled field is set to visible or infisible based on the value from control field.
File
- ./
field_conditional_state.module, line 148 - Main functions for field_conditional_state
Code
function field_conditional_state_entity_view($entity, $type, $view_mode, $langcode) {
if (!empty($entity->content)) {
foreach ($entity->content as $field_name => $field_content) {
if (is_array($field_content) && isset($field_content['#bundle'])) {
$field_conditions = field_conditional_state_get_field_conditions($field_name, $field_content['#bundle']);
$data = array(
$type,
$view_mode,
$langcode,
);
drupal_alter('field_conditional_state_entity_view', $field_conditions, $entity, $data);
if ($field_conditions) {
foreach ($field_conditions as $condition) {
$lang = $field_content['#language'];
$control_field_name = $condition['control_field'];
$control_values = $entity->{$control_field_name};
$trigger_value_exist = field_conditional_state_trigger_value_in_field_value($control_values[$lang], $condition['trigger_values'], $condition['condition_type']);
if ($condition['state'] == 'visible' && !$trigger_value_exist || $condition['state'] == 'invisible' && $trigger_value_exist) {
$entity->content[$field_name]['#access'] = FALSE;
}
}
}
}
}
}
}