diff --git a/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc index 79dc5d1..29fc424 100644 --- a/core/modules/language/language.admin.inc +++ b/core/modules/language/language.admin.inc @@ -99,57 +99,6 @@ function theme_language_negotiation_configure_form($variables) { } /** - * Theme browser configuration form as table. - * - * @param $variables - * An associative array containing: - * - form: A render element representing the form. - * - * @ingroup themeable - */ -function theme_language_negotiation_configure_browser_form_table($variables) { - $form = $variables['form']; - $rows = array(); - foreach (element_children($form, TRUE) as $key) { - $row = array(); - $row[] = drupal_render($form[$key]['browser_langcode']); - $row[] = drupal_render($form[$key]['drupal_langcode']); - $links = array(); - $links['delete'] = array( - 'title' => t('Delete'), - 'href' => "admin/config/regional/language/detection/browser/delete/$key", - 'attributes' => array( - 'class' => array('image-style-link'), - ), - ); - $row[] = array( - 'data' => array( - '#type' => 'operations', - '#links' => $links, - ), - ); - - $rows[] = $row; - } - - $header = array( - t('Browser language code'), - t('Drupal language'), - t('Operations'), - ); - - $table = array( - '#theme' => 'table', - '#header' => $header, - '#rows' => $rows, - '#attributes' => array('id' => 'lang-neg-browser'), - ); - $output = drupal_render($table); - - return $output; -} - -/** * Returns the content language settings form. * * @deprecated Use \Drupal\language\Controller\LanguageController::contentSettings() @@ -208,12 +157,10 @@ function language_content_settings_form(array $form, array $form_state, array $s foreach ($labels as $entity_type => $label) { $info = $entity_info[$entity_type]; - - $form['settings'][$entity_type] = array( + $form['settings'][$entity_type] = array( '#title' => $label, '#type' => 'container', '#entity_type' => $entity_type, - '#theme' => 'language_content_settings_table', '#bundle_label' => $info->getBundleLabel() ?: $label, '#states' => array( 'visible' => array( @@ -222,8 +169,33 @@ function language_content_settings_form(array $form, array $form_state, array $s ), ); + $form['settings'][$entity_type]['label'] = array( + "#markup" => '

' . $label . '

', + ); + + $form['settings'][$entity_type]['settings'] = array( + '#type' => 'table', + '#title' => $label, + '#header' => array( + array( + 'data' => $info->getBundleLabel() ?: $label, + 'class' => array('bundle'), + ), + array( + 'data' => t('Configuration'), + 'class' => array('operations'), + ), + ), + ); + foreach (entity_get_bundles($entity_type) as $bundle => $bundle_info) { - $form['settings'][$entity_type][$bundle]['settings'] = array( + $form['settings'][$entity_type]['settings'][$bundle]['#attributes']['class'][] = 'draggable'; + $form['settings'][$entity_type]['settings'][$bundle]['label'] = array( + '#theme' => 'form_element_label', + '#title' => $bundle_info['label'], + '#wrapper_attributes' => array('class' => array('bundle')), + ); + $form['settings'][$entity_type]['settings'][$bundle]['settings'] = array( '#type' => 'item', '#label' => $bundle_info['label'], 'language' => array( @@ -234,6 +206,7 @@ function language_content_settings_form(array $form, array $form_state, array $s ), '#default_value' => $language_configuration[$entity_type][$bundle], ), + '#wrapper_attributes' => array('class' => array('bundle-settings')), ); } } @@ -248,73 +221,12 @@ function language_content_settings_form(array $form, array $form_state, array $s } /** - * 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' => '', - '#markup' => check_plain($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, - '#theme' => '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 themable - */ -function theme_language_content_settings_table($variables) { - return '

' . $variables['build']['#title'] . '

' . drupal_render($variables['build']); -} - -/** * Form submission handler for language_content_settings_form(). */ function language_content_settings_form_submit(array $form, array &$form_state) { $settings = &$form_state['values']['settings']; foreach ($settings as $entity_type => $entity_settings) { - foreach ($entity_settings as $bundle => $bundle_settings) { + foreach ($entity_settings['settings'] as $bundle => $bundle_settings) { language_save_default_configuration($entity_type, $bundle, $bundle_settings['settings']['language']); } } diff --git a/core/modules/language/language.module b/core/modules/language/language.module index 8d0faab..f001f3d 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -143,14 +143,6 @@ function language_theme() { 'render element' => 'form', 'file' => 'language.admin.inc', ), - 'language_negotiation_configure_browser_form_table' => array( - 'render element' => 'form', - 'file' => 'language.admin.inc', - ), - 'language_content_settings_table' => array( - 'render element' => 'element', - 'file' => 'language.admin.inc', - ), ); } diff --git a/core/modules/language/lib/Drupal/language/Form/NegotiationBrowserForm.php b/core/modules/language/lib/Drupal/language/Form/NegotiationBrowserForm.php index 0537a6a..cf3fdf2 100644 --- a/core/modules/language/lib/Drupal/language/Form/NegotiationBrowserForm.php +++ b/core/modules/language/lib/Drupal/language/Form/NegotiationBrowserForm.php @@ -81,24 +81,41 @@ public function buildForm(array $form, array &$form_state) { } $form['mappings'] = array( - '#tree' => TRUE, - '#theme' => 'language_negotiation_configure_browser_form_table', + '#type' => 'table', + '#header' => array( + $this->t('Browser language code'), + $this->t('Drupal language'), + $this->t('Operations'), + ), + '#attributes' => array('id' => 'lang-neg-browser'), ); $mappings = $this->language_get_browser_drupal_langcode_mappings(); foreach ($mappings as $browser_langcode => $drupal_langcode) { - $form['mappings'][$browser_langcode] = array( - 'browser_langcode' => array( - '#type' => 'textfield', - '#default_value' => $browser_langcode, - '#size' => 20, - '#required' => TRUE, - ), - 'drupal_langcode' => array( - '#type' => 'select', - '#options' => $language_options, - '#default_value' => $drupal_langcode, - '#required' => TRUE, + $form['mappings'][$browser_langcode]['browser_langcode'] = array( + '#type' => 'textfield', + '#default_value' => $browser_langcode, + '#size' => 20, + '#required' => TRUE, + ); + + $form['mappings'][$browser_langcode]['drupal_langcode'] = array( + '#type' => 'select', + '#options' => $language_options, + '#default_value' => $drupal_langcode, + '#required' => TRUE, + ); + + // Operations column. + $form['mappings'][$browser_langcode]['operations'] = array( + '#type' => 'operations', + '#links' => array(), + ); + $form['mappings'][$browser_langcode]['operations']['#links']['delete'] = array( + 'title' => $this->t('Delete'), + 'href' => 'admin/config/regional/language/detection/browser/delete/' . $browser_langcode, + 'attributes' => array( + 'class' => array('image-style-link'), ), ); }