629fd086911ae5db4a5da6748d0b2831ee5ca3c8
[yaffs-website] / web / core / modules / language / src / Form / NegotiationBrowserDeleteForm.php
1 <?php
2
3 namespace Drupal\language\Form;
4
5 use Drupal\Core\Form\ConfigFormBaseTrait;
6 use Drupal\Core\Form\ConfirmFormBase;
7 use Drupal\Core\Form\FormStateInterface;
8 use Drupal\Core\Url;
9
10 /**
11  * Defines a confirmation form for deleting a browser language negotiation mapping.
12  *
13  * @internal
14  */
15 class NegotiationBrowserDeleteForm extends ConfirmFormBase {
16   use ConfigFormBaseTrait;
17
18   /**
19    * The browser language code to be deleted.
20    *
21    * @var string
22    */
23   protected $browserLangcode;
24
25   /**
26    * {@inheritdoc}
27    */
28   protected function getEditableConfigNames() {
29     return ['language.mappings'];
30   }
31
32
33   /**
34    * {@inheritdoc}
35    */
36   public function getQuestion() {
37     return $this->t('Are you sure you want to delete %browser_langcode?', ['%browser_langcode' => $this->browserLangcode]);
38   }
39
40   /**
41    * {@inheritdoc}
42    */
43   public function getCancelUrl() {
44     return new Url('language.negotiation_browser');
45   }
46
47   /**
48    * {@inheritdoc}
49    */
50   public function getFormId() {
51     return 'language_negotiation_configure_browser_delete_form';
52   }
53
54   /**
55    * {@inheritdoc}
56    */
57   public function buildForm(array $form, FormStateInterface $form_state, $browser_langcode = NULL) {
58     $this->browserLangcode = $browser_langcode;
59
60     $form = parent::buildForm($form, $form_state);
61
62     return $form;
63   }
64
65   /**
66    * {@inheritdoc}
67    */
68   public function submitForm(array &$form, FormStateInterface $form_state) {
69     $this->config('language.mappings')
70       ->clear('map.' . $this->browserLangcode)
71       ->save();
72
73     $args = [
74       '%browser' => $this->browserLangcode,
75     ];
76
77     $this->logger('language')->notice('The browser language detection mapping for the %browser browser language code has been deleted.', $args);
78
79     drupal_set_message($this->t('The mapping for the %browser browser language code has been deleted.', $args));
80
81     $form_state->setRedirect('language.negotiation_browser');
82   }
83
84 }