diff --git a/core/modules/language/language.admin.inc b/core/modules/language/language.admin.inc index a7c6663..b8054a7 100644 --- a/core/modules/language/language.admin.inc +++ b/core/modules/language/language.admin.inc @@ -11,84 +11,6 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; /** - * User interface for the language overview screen. - */ -function language_admin_overview_form($form, &$form_state) { - drupal_static_reset('language_list'); - $languages = language_list(); - $default = language_default(); - - $form['languages'] = array( - '#languages' => $languages, - '#language_default' => $default, - '#type' => 'table', - '#header' => array( - t('Name'), - t('Weight'), - t('Operations'), - ), - '#tabledrag' => array( - array('order', 'sibling', 'language-order-weight'), - ), - ); - - foreach ($languages as $langcode => $language) { - $form['languages'][$langcode]['#attributes']['class'][] = 'draggable'; - $form['languages'][$langcode]['name'] = array( - '#markup' => check_plain($language->name), - ); - $form['languages'][$langcode]['weight'] = array( - '#type' => 'weight', - '#title' => t('Weight for @title', array('@title' => $language->name)), - '#title_display' => 'invisible', - '#default_value' => $language->weight, - '#attributes' => array( - 'class' => array('language-order-weight'), - ), - '#delta' => 30, - ); - $links = array(); - $links['edit'] = array( - 'title' => t('edit'), - 'href' => 'admin/config/regional/language/edit/' . $langcode, - ); - if ($langcode != $default->id) { - $links['delete'] = array( - 'title' => t('delete'), - 'href' => 'admin/config/regional/language/delete/' . $langcode, - ); - } - $form['languages'][$langcode]['operations'] = array( - '#type' => 'operations', - '#links' => $links, - '#weight' => 100, - ); - } - - $form['actions'] = array('#type' => 'actions'); - $form['actions']['submit'] = array( - '#type' => 'submit', - '#value' => t('Save configuration'), - ); - - return $form; -} - -/** - * Process language overview form submissions, updating existing languages. - */ -function language_admin_overview_form_submit($form, &$form_state) { - $languages = language_list(); - - foreach ($languages as $langcode => $language) { - $language->weight = $form_state['values']['languages'][$langcode]['weight']; - language_save($language); - } - - drupal_set_message(t('Configuration saved.')); -} - -/** * User interface for the language addition screen. */ function language_admin_add_form($form, &$form_state) { diff --git a/core/modules/language/language.module b/core/modules/language/language.module index bdbd15c..e6645b8 100644 --- a/core/modules/language/language.module +++ b/core/modules/language/language.module @@ -70,10 +70,7 @@ function language_menu() { $items['admin/config/regional/language'] = array( 'title' => 'Languages', 'description' => 'Configure languages for content and the user interface.', - 'page callback' => 'drupal_get_form', - 'page arguments' => array('language_admin_overview_form'), - 'access arguments' => array('administer languages'), - 'file' => 'language.admin.inc', + 'route_name' => 'language_admin_overview', 'weight' => -10, ); $items['admin/config/regional/language/list'] = array( diff --git a/core/modules/language/language.routing.yml b/core/modules/language/language.routing.yml index 4a2fc8c..a65d066 100644 --- a/core/modules/language/language.routing.yml +++ b/core/modules/language/language.routing.yml @@ -18,3 +18,10 @@ language_negotiation_selected: _form: 'Drupal\language\Form\NegotiationSelectedForm' requirements: _permission: 'administer languages' + +language_admin_overview: + pattern: '/admin/config/regional/language' + defaults: + _form: 'Drupal\language\Form\LanguageAdminOverviewForm' + requirements: + _permission: 'administer languages' diff --git a/core/modules/language/lib/Drupal/language/Form/LanguageAdminOverviewForm.php b/core/modules/language/lib/Drupal/language/Form/LanguageAdminOverviewForm.php new file mode 100644 index 0000000..6549cd1 --- /dev/null +++ b/core/modules/language/lib/Drupal/language/Form/LanguageAdminOverviewForm.php @@ -0,0 +1,108 @@ + $languages, + '#language_default' => $default, + '#type' => 'table', + '#header' => array( + t('Name'), + t('Weight'), + t('Operations'), + ), + '#tabledrag' => array( + array('order', 'sibling', 'language-order-weight'), + ), + ); + + foreach ($languages as $langcode => $language) { + $form['languages'][$langcode]['#attributes']['class'][] = 'draggable'; + $form['languages'][$langcode]['name'] = array( + '#markup' => String::checkPlain($language->name), + ); + $form['languages'][$langcode]['weight'] = array( + '#type' => 'weight', + '#title' => t('Weight for @title', array('@title' => $language->name)), + '#title_display' => 'invisible', + '#default_value' => $language->weight, + '#attributes' => array( + 'class' => array('language-order-weight'), + ), + '#delta' => 30, + ); + $links = array(); + $links['edit'] = array( + 'title' => t('edit'), + 'href' => 'admin/config/regional/language/edit/' . $langcode, + ); + if ($langcode != $default->id) { + $links['delete'] = array( + 'title' => t('delete'), + 'href' => 'admin/config/regional/language/delete/' . $langcode, + ); + } + $form['languages'][$langcode]['operations'] = array( + '#type' => 'operations', + '#links' => $links, + '#weight' => 100, + ); + } + + $form['actions'] = array('#type' => 'actions'); + $form['actions']['submit'] = array( + '#type' => 'submit', + '#value' => t('Save configuration'), + ); + + return $form; + } + + /** + * {@inheritdoc} + */ + public function validateForm(array &$form, array &$form_state) { + } + + /** + * {@inheritdoc} + */ + public function submitForm(array &$form, array &$form_state) { + $languages = language_list(); + + foreach ($languages as $langcode => $language) { + $language->weight = $form_state['values']['languages'][$langcode]['weight']; + language_save($language); + } + + drupal_set_message(t('Configuration saved.')); + } + +}