function FormElementBase::getTranslationBuild

Same name in other branches
  1. 8.9.x core/modules/config_translation/src/FormElement/FormElementBase.php \Drupal\config_translation\FormElement\FormElementBase::getTranslationBuild()
  2. 10 core/modules/config_translation/src/FormElement/FormElementBase.php \Drupal\config_translation\FormElement\FormElementBase::getTranslationBuild()
  3. 11.x core/modules/config_translation/src/FormElement/FormElementBase.php \Drupal\config_translation\FormElement\FormElementBase::getTranslationBuild()

Overrides ElementInterface::getTranslationBuild

File

core/modules/config_translation/src/FormElement/FormElementBase.php, line 53

Class

FormElementBase
Provides a common base class for form elements.

Namespace

Drupal\config_translation\FormElement

Code

public function getTranslationBuild(LanguageInterface $source_language, LanguageInterface $translation_language, $source_config, $translation_config, array $parents, $base_key = NULL) {
    $build['#theme'] = 'config_translation_manage_form_element';
    // For accessibility we make source and translation appear next to each
    // other in the source for each element, which is why we utilize the
    // 'source' and 'translation' sub-keys for the form. The form values,
    // however, should mirror the configuration structure, so that we can
    // traverse the configuration schema and still access the right
    // configuration values in ConfigTranslationFormBase::setConfig().
    // Therefore we make the 'source' and 'translation' keys the top-level
    // keys in $form_state['values'].
    $build['source'] = $this->getSourceElement($source_language, $source_config);
    $build['translation'] = $this->getTranslationElement($translation_language, $source_config, $translation_config);
    $build['source']['#parents'] = array_merge([
        'source',
    ], $parents);
    $build['translation']['#parents'] = array_merge([
        'translation',
    ], $parents);
    return $build;
}

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