You are here

function entity_translation_unified_form_form_alter in Entity Translation Unified Form 8

Add language fields to node forms.

Implements hook_form_BASE_FORM_ID_alter().

File

./entity_translation_unified_form.module, line 502

Code

function entity_translation_unified_form_form_alter(&$form, FormStateInterface $form_state, $form_id) {
  $form_object = $form_state
    ->getFormObject();
  if (!$form_object instanceof EntityForm) {
    return;
  }
  $entity = $form_object
    ->getEntity();
  $entity_type_id = $entity
    ->getEntityTypeId();
  $bundle = $entity
    ->bundle();
  if (!empty($entity) && entity_translation_unified_form_bundle_enabled($entity_type_id, $bundle)) {

    // Inject our submit handler immediately before the entity save function
    // If we don't find the save function, don't do anything.
    $key = array_search('::save', $form['actions']['submit']['#submit']);
    if (isset($form['actions']['preview'])) {
      $keyp = array_search('::preview', $form['actions']['preview']['#submit']);
    }
    if ($key !== FALSE) {
      array_splice($form['actions']['submit']['#submit'], $key, 0, 'entity_translation_unified_form_node_form_submit');
      if (isset($form['actions']['preview'])) {
        array_splice($form['actions']['preview']['#submit'], $keyp, 0, 'entity_translation_unified_form_node_form_preview');
      }

      // Add entity translation form elements for unified language node form.
      entity_translation_unified_form_add_fields($form, $form_state);
    }
  }
}