You are here

function better_formats_field_widget_form_alter in Better Formats 8

Implements hook_field_widget_form_alter().

File

./better_formats.module, line 16
Enhances the core input format system by managing input format defaults and settings.

Code

function better_formats_field_widget_form_alter(&$element, FormStateInterface $form_state, $context) {
  $field_definition = $context['items']
    ->getFieldDefinition();
  if (!$field_definition instanceof ThirdPartySettingsInterface) {
    return;
  }
  $betterFormatsSettings = $field_definition
    ->getThirdPartySettings('better_formats');
  if (empty($betterFormatsSettings)) {
    return;
  }
  $element['#better_formats']['settings'] = $betterFormatsSettings;
  $element['#better_formats']['existing_entity'] = FALSE;
  $entity = $context['items']
    ->getEntity();
  if (!empty($entity)) {

    // Determine if this is an existing entity.
    if ($entity
      ->id()) {
      $element['#better_formats']['existing_entity'] = TRUE;
    }
    $element['#better_formats']['entity_type'] = $entity
      ->getEntityTypeId();
    $default_value = $field_definition
      ->getDefaultValue($entity);
    $default_value = array_shift($default_value);
    $element['#better_formats']['default_value'] = isset($default_value['format']) ? $default_value['format'] : NULL;
  }
}