diff --git a/core/modules/content_translation/content_translation.admin.inc b/core/modules/content_translation/content_translation.admin.inc index cea6b2e..5c6eb22 100644 --- a/core/modules/content_translation/content_translation.admin.inc +++ b/core/modules/content_translation/content_translation.admin.inc @@ -96,7 +96,7 @@ function _content_translation_form_language_content_settings_form_alter(array &$ // about UI integration. $form['settings'][$entity_type_id][$bundle]['settings']['language']['#content_translation_skip_alter'] = TRUE; if (!$entity_type_translatable) { - $form['settings'][$entity_type_id]['#title'] = t('@label (Translation is not supported).', array('@label' => $entity_type->getLabel())); + $form['settings'][$entity_type_id . '-label']['#markup'] = t('@label (Translation is not supported).', array('@label' => $entity_type->getLabel())); continue; } @@ -285,7 +285,7 @@ function _content_translation_preprocess_language_content_settings_table(&$varia function content_translation_form_language_content_settings_validate(array $form, FormStateInterface $form_state) { $settings = &$form_state->getValue('settings'); foreach ($settings as $entity_type => $entity_settings) { - foreach ($entity_settings as $bundle => $bundle_settings) { + foreach ($entity_settings['table'] as $bundle => $bundle_settings) { if (!empty($bundle_settings['translatable'])) { $name = "settings][$entity_type][$bundle][translatable"; diff --git a/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc index 9373672..5a95a98 100644 --- a/core/modules/language/language.admin.inc +++ b/core/modules/language/language.admin.inc @@ -142,64 +142,3 @@ function theme_language_negotiation_configure_browser_form_table($variables) { return $output; } - -/** - * Implements hook_preprocess_HOOK() for theme_language_content_settings_table(). - */ -function template_preprocess_language_content_settings_table(&$variables) { - // Add a render element representing the bundle language settings table. - $element = $variables['element']; - - $header = array( - array( - 'data' => $element['#bundle_label'], - 'class' => array('bundle'), - ), - array( - 'data' => t('Configuration'), - 'class' => array('operations'), - ), - ); - - $rows = array(); - foreach (Element::children($element) as $bundle) { - $rows[$bundle] = array( - 'data' => array( - array( - 'data' => array( - '#prefix' => '', - '#plain_text' => $element[$bundle]['settings']['#label'], - ), - 'class' => array('bundle'), - ), - array( - 'data' => $element[$bundle]['settings'], - 'class' => array('operations'), - ), - ), - 'class' => array('bundle-settings'), - ); - } - - $variables['build'] = array( - '#title' => $element['#title'], - '#header' => $header, - '#rows' => $rows, - '#type' => 'table', - ); -} - -/** - * Returns HTML for an administration settings table. - * - * @param array $variables - * An associative array containing: - * - build: A render element representing a table of bundle content language - * settings for a particular entity type. - * - * @ingroup themeable - */ -function theme_language_content_settings_table($variables) { - return '

' . theme_render_and_autoescape($variables['build']['#title']) . '

' . theme_render_and_autoescape($variables['build']); -} diff --git a/core/modules/language/language.module b/core/modules/language/language.module index 30fedc6..0e8ce64 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -110,11 +110,6 @@ function language_theme() { 'file' => 'language.admin.inc', 'function' => 'theme_language_negotiation_configure_browser_form_table', ), - 'language_content_settings_table' => array( - 'render element' => 'element', - 'file' => 'language.admin.inc', - 'function' => 'theme_language_content_settings_table', - ), ); } diff --git a/core/modules/language/src/Form/ContentLanguageSettingsForm.php b/core/modules/language/src/Form/ContentLanguageSettingsForm.php index ebbf0fd..bb50d33 100644 --- a/core/modules/language/src/Form/ContentLanguageSettingsForm.php +++ b/core/modules/language/src/Form/ContentLanguageSettingsForm.php @@ -105,22 +105,41 @@ public function buildForm(array $form, FormStateInterface $form_state) { foreach ($labels as $entity_type_id => $label) { $entity_type = $entity_types[$entity_type_id]; - $form['settings'][$entity_type_id] = array( - '#title' => $label, + $form['settings'][$entity_type_id] = [ '#type' => 'container', + ]; + + $form['settings'][$entity_type_id]['label'] = [ + '#markup' => '

' . $label . '

', + ]; + + $form['settings'][$entity_type_id]['table'] = [ + '#title' => $label, + '#type' => 'table', + '#header' => [ + [ + 'data' => $entity_type->getBundleLabel() ?: $label, + 'class' => ['bundle'], + ], + [ + 'data' => t('Configuration'), + 'class' => ['operations'], + ], + ], '#entity_type' => $entity_type_id, - '#theme' => 'language_content_settings_table', '#bundle_label' => $entity_type->getBundleLabel() ?: $label, - '#states' => array( - 'visible' => array( - ':input[name="entity_types[' . $entity_type_id . ']"]' => array('checked' => TRUE), - ), - ), - ); + '#states' => [ + 'visible' => [ + ':input[name="entity_types[' . $entity_type_id . ']"]' => ['checked' => TRUE], + ], + ], + ]; foreach ($bundles[$entity_type_id] as $bundle => $bundle_info) { - $form['settings'][$entity_type_id][$bundle]['settings'] = array( - '#type' => 'item', + $form['settings'][$entity_type_id]['table'][$bundle]['content_type'] = [ + '#markup' => $bundle_info['label'], + ]; + $form['settings'][$entity_type_id]['table'][$bundle]['settings'] = array( '#label' => $bundle_info['label'], 'language' => array( '#type' => 'language_configuration', @@ -149,7 +168,7 @@ public function buildForm(array $form, FormStateInterface $form_state) { */ public function submitForm(array &$form, FormStateInterface $form_state) { foreach ($form_state->getValue('settings') as $entity_type => $entity_settings) { - foreach ($entity_settings as $bundle => $bundle_settings) { + foreach ($entity_settings['table'] as $bundle => $bundle_settings) { $config = ContentLanguageSettings::loadByEntityTypeBundle($entity_type, $bundle); $config->setDefaultLangcode($bundle_settings['settings']['language']['langcode']) ->setLanguageAlterable($bundle_settings['settings']['language']['language_alterable'])