function NodeTranslationHandler::entityFormAlter

Same name in other branches
  1. 9 core/modules/node/src/NodeTranslationHandler.php \Drupal\node\NodeTranslationHandler::entityFormAlter()
  2. 10 core/modules/node/src/NodeTranslationHandler.php \Drupal\node\NodeTranslationHandler::entityFormAlter()
  3. 11.x core/modules/node/src/NodeTranslationHandler.php \Drupal\node\NodeTranslationHandler::entityFormAlter()

Overrides ContentTranslationHandler::entityFormAlter

File

core/modules/node/src/NodeTranslationHandler.php, line 17

Class

NodeTranslationHandler
Defines the translation handler for nodes.

Namespace

Drupal\node

Code

public function entityFormAlter(array &$form, FormStateInterface $form_state, EntityInterface $entity) {
    parent::entityFormAlter($form, $form_state, $entity);
    if (isset($form['content_translation'])) {
        // We do not need to show these values on node forms: they inherit the
        // basic node property values.
        $form['content_translation']['status']['#access'] = FALSE;
        $form['content_translation']['name']['#access'] = FALSE;
        $form['content_translation']['created']['#access'] = FALSE;
    }
    $form_object = $form_state->getFormObject();
    $form_langcode = $form_object->getFormLangcode($form_state);
    $translations = $entity->getTranslationLanguages();
    $status_translatable = NULL;
    // Change the submit button labels if there was a status field they affect
    // in which case their publishing / unpublishing may or may not apply
    // to all translations.
    if (!$entity->isNew() && (!isset($translations[$form_langcode]) || count($translations) > 1)) {
        foreach ($entity->getFieldDefinitions() as $property_name => $definition) {
            if ($property_name == 'status') {
                $status_translatable = $definition->isTranslatable();
            }
        }
        if (isset($status_translatable)) {
            if (isset($form['actions']['submit'])) {
                $form['actions']['submit']['#value'] .= ' ' . ($status_translatable ? t('(this translation)') : t('(all translations)'));
            }
        }
    }
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.