You are here

function entity_translation_unified_form_form_language_content_settings_form_alter in Entity Translation Unified Form 8

Implements hook_form_form_language_content_settings_form_alter().

Add the "Enable ETUF" checkbox to the content language page: admin/config/regional/content-language.

File

./entity_translation_unified_form.module, line 375

Code

function entity_translation_unified_form_form_language_content_settings_form_alter(&$form, FormStateInterface $form_state) {

  // Inject into the content language settings the translation settings if the
  // user has the required permission.
  if (!\Drupal::currentUser()
    ->hasPermission('administer content translation')) {
    return;
  }

  /** @var \Drupal\content_translation\ContentTranslationManagerInterface $content_translation_manager */
  $content_translation_manager = \Drupal::service('content_translation.manager');
  $entity_manager = \Drupal::entityTypeManager();
  $bundle_info_service = \Drupal::service('entity_type.bundle.info');
  foreach ($form['#labels'] as $entity_type_id => $label) {
    $entity_type = $entity_manager
      ->getDefinition($entity_type_id);
    $entity_type_translatable = $content_translation_manager
      ->isSupported($entity_type_id);
    if ($entity_type_translatable) {
      foreach ($bundle_info_service
        ->getBundleInfo($entity_type_id) as $bundle => $bundle_info) {
        $form['settings'][$entity_type_id][$bundle]['settings']['content_translation']['entity_translation_unified_form_enable'] = [
          '#title' => t('Place all content-translatable fields for all enabled languages inline on the entity add/edit form'),
          '#type' => 'checkbox',
          '#default_value' => entity_translation_unified_form_bundle_enabled($entity_type_id, $bundle),
          '#states' => [
            'visible' => [
              ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][translatable]"]' => [
                'checked' => TRUE,
              ],
            ],
          ],
        ];
        $form['settings'][$entity_type_id][$bundle]['settings']['content_translation']['entity_translation_unified_form_theme'] = [
          '#title' => t('Select the inline display mode'),
          '#type' => 'select',
          '#default_value' => entity_translation_unified_form_bundle_display_mode($entity_type_id, $bundle),
          '#options' => entity_translation_unified_form_get_mode_options(),
          '#states' => [
            'visible' => [
              ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][translatable]"]' => [
                'checked' => TRUE,
              ],
              'and',
              ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][settings][content_translation][entity_translation_unified_form_enable]"]' => [
                'checked' => TRUE,
              ],
            ],
          ],
        ];
        $form['settings'][$entity_type_id][$bundle]['settings']['content_translation']['entity_translation_unified_form_language'] = [
          '#title' => t('Select how to display language name'),
          '#type' => 'select',
          '#default_value' => entity_translation_unified_form_language_display($entity_type_id, $bundle),
          '#options' => entity_translation_unified_form_get_language_display_options(),
          '#states' => [
            'visible' => [
              ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][settings][content_translation][entity_translation_unified_form_enable]"]' => [
                'checked' => TRUE,
              ],
              'and',
              ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][settings][content_translation][entity_translation_unified_form_theme]"]' => [
                'value' => 'EntityTranslationUnifiedFormInlineMode',
              ],
              'and',
              ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][translatable]"]' => [
                'checked' => TRUE,
              ],
            ],
          ],
        ];
        $form['settings'][$entity_type_id][$bundle]['settings']['content_translation']['entity_translation_unified_form_translate_labels'] = [
          '#title' => t('Translate fields labels and descriptions in each language'),
          '#type' => 'checkbox',
          '#default_value' => entity_translation_unified_form_translate_labels_enabled($entity_type_id, $bundle),
          '#states' => [
            'visible' => [
              ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][settings][content_translation][entity_translation_unified_form_enable]"]' => [
                'checked' => TRUE,
              ],
              'and',
              ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][settings][content_translation][entity_translation_unified_form_theme]"]' => [
                'value' => 'EntityTranslationUnifiedFormInlineMode',
              ],
              'and',
              ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][translatable]"]' => [
                'checked' => TRUE,
              ],
            ],
          ],
        ];
        if ($entity_type_id == 'node') {
          $form['settings'][$entity_type_id][$bundle]['settings']['content_translation']['entity_translation_unified_form_sbs_enable'] = [
            '#title' => t('Enable side-by-side UI mode on the node add/edit form'),
            '#type' => 'checkbox',
            '#default_value' => entity_translation_unified_form_sbs_enabled('node', $bundle),
            '#states' => [
              'visible' => [
                ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][translatable]"]' => [
                  'checked' => TRUE,
                ],
                'and',
                ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][settings][content_translation][entity_translation_unified_form_enable]"]' => [
                  'checked' => TRUE,
                ],
              ],
            ],
          ];
        }
        if ($entity_type_id == 'node') {
          $form['settings'][$entity_type_id][$bundle]['settings']['content_translation']['entity_translation_unified_form_moderation_sync_disable'] = [
            '#title' => t('Disable moderation sync mode on the node add/edit form for this bundle'),
            '#type' => 'checkbox',
            '#default_value' => entity_translation_unified_form_moderation_sync_disabled('node', $bundle),
            '#states' => [
              'visible' => [
                ':input[name="settings[' . $entity_type_id . '][' . $bundle . '][translatable]"]' => [
                  'checked' => TRUE,
                ],
              ],
            ],
          ];
        }
      }
    }
  }
}