function ContentTranslationTestHooks::formNodeFormAlter

Implements hook_form_BASE_FORM_ID_alter().

Adds a textfield to node forms based on a request parameter.

Attributes

#[Hook('form_node_form_alter')]

File

core/modules/content_translation/tests/modules/content_translation_test/src/Hook/ContentTranslationTestHooks.php, line 55

Class

ContentTranslationTestHooks
Hook implementations for content_translation_test.

Namespace

Drupal\content_translation_test\Hook

Code

public function formNodeFormAlter(&$form, FormStateInterface $form_state, $form_id) : void {
  $langcode = $form_state->getFormObject()
    ->getFormLangcode($form_state);
  if (in_array($langcode, [
    'en',
    'fr',
  ]) && \Drupal::request()->get('test_field_only_en_fr')) {
    $form['test_field_only_en_fr'] = [
      '#type' => 'textfield',
      '#title' => 'Field only available on the english and french form',
    ];
    foreach (array_keys($form['actions']) as $action) {
      if ($action != 'preview' && isset($form['actions'][$action]['#type']) && $form['actions'][$action]['#type'] === 'submit') {
        $form['actions'][$action]['#submit'][] = [
          $this,
          'formNodeFormSubmit',
        ];
      }
    }
  }
}

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