function _image_field_caption_widget_process in Image Field Caption 8
Custom callback function for the #process of an image field type.
1 string reference to '_image_field_caption_widget_process'
File
- ./
image_field_caption.module, line 47 - Provides a caption textarea for image fields.
Code
function _image_field_caption_widget_process($element, &$form_state, $form) {
// Get the entity.
$entity = $form_state
->getFormObject()
->getEntity();
// Get the fields definitions.
$field_definitions = $entity
->getFieldDefinitions();
// Get the current field definition.
if (!empty($field_definitions[$element['#field_name']])) {
$field_definition = $field_definitions[$element['#field_name']];
}
elseif (!empty($field_definitions[$element['#field_parents'][0]])) {
$field_definition = $field_definitions[$element['#field_parents'][0]];
}
else {
$field_definition = NULL;
}
// Get the current field values (form state).
$field_values = $form_state
->getValues();
// If the field has parents (ex: paragraphs) then get the nested values.
if (!empty($element['#field_parents'])) {
$field_values = NestedArray::getValue($field_values, $element['#field_parents']);
}
$field_value = isset($field_values[$element['#field_name']][$element['#delta']]['image_field_caption']) ? $field_values[$element['#field_name']][$element['#delta']]['image_field_caption'] : [];
// Add the additional caption fields.
$element['image_field_caption'] = [
'#title' => t('Caption'),
'#type' => 'text_format',
'#value' => !empty($field_value['value']) ? $field_value['value'] : (!empty($element['#value']['caption']) ? $element['#value']['caption'] : []),
'#default_value' => !empty($element['#value']['caption']) ? $element['#value']['caption'] : (!empty($element['#value']['image_field_caption']) ? $element['#value']['image_field_caption']['value'] : ''),
'#access' => (bool) $element['#value']['fids'],
'#format' => !empty($field_value['format']) ? $field_value['format'] : (!empty($element['#value']['caption_format']) ? $element['#value']['caption_format'] : 'plain_text'),
'#required' => $element['#alt_field_required'],
'#element_validate' => $element['#alt_field_required'] ? [
'_image_field_caption_validate_required',
] : [],
];
return $element;
}