From 86c4193fa5abebee2876a36e0440118f647df80f Mon Sep 17 00:00:00 2001 From: Alex Pott <alex.a.pott@googlemail.com> Date: Mon, 1 Aug 2022 14:55:26 +0100 Subject: [PATCH] Issue #3242538 by danflanagan8, mounir_abid, cilefen, DigitalFrontiersMedia, super_romeo, smustgrave: Term creation fail with php 8 when override_selector = TRUE --- core/modules/taxonomy/src/TermForm.php | 20 +++++++++------ .../tests/src/Functional/TermTest.php | 25 +++++++++++++++++++ 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/core/modules/taxonomy/src/TermForm.php b/core/modules/taxonomy/src/TermForm.php index e252d8e073e2..73f6e4d11e1d 100644 --- a/core/modules/taxonomy/src/TermForm.php +++ b/core/modules/taxonomy/src/TermForm.php @@ -63,15 +63,19 @@ public function form(array $form, FormStateInterface $form_state) { $options[$item->tid] = str_repeat('-', $item->depth) . $item->name; } } - - $form['relations']['parent'] = [ - '#type' => 'select', - '#title' => $this->t('Parent terms'), - '#options' => $options, - '#default_value' => $parent, - '#multiple' => TRUE, - ]; } + else { + $options = ['<' . $this->t('root') . '>']; + $parent = [0]; + } + + $form['relations']['parent'] = [ + '#type' => 'select', + '#title' => $this->t('Parent terms'), + '#options' => $options, + '#default_value' => $parent, + '#multiple' => TRUE, + ]; $form['relations']['weight'] = [ '#type' => 'textfield', diff --git a/core/modules/taxonomy/tests/src/Functional/TermTest.php b/core/modules/taxonomy/tests/src/Functional/TermTest.php index d325cb1c4185..0bf4118ee9f0 100644 --- a/core/modules/taxonomy/tests/src/Functional/TermTest.php +++ b/core/modules/taxonomy/tests/src/Functional/TermTest.php @@ -432,6 +432,31 @@ public function testTermInterface() { $this->assertSession()->pageTextNotContains('Save and go to list'); } + /** + * Test UI with override_selector TRUE. + */ + public function testTermSaveOverrideSelector() { + $this->config('taxonomy.settings')->set('override_selector', TRUE)->save(); + + // Create a Term. + $edit = [ + 'name[0][value]' => $this->randomMachineName(12), + 'description[0][value]' => $this->randomMachineName(100), + ]; + // Create the term to edit. + $this->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/add'); + $this->submitForm($edit, 'Save'); + $terms = \Drupal::entityTypeManager()->getStorage('taxonomy_term')->loadByProperties([ + 'name' => $edit['name[0][value]'], + ]); + $term = reset($terms); + $this->assertNotNull($term, 'Term found in database.'); + + // The term appears on the vocab list page. + $this->drupalGet('admin/structure/taxonomy/manage/' . $this->vocabulary->id() . '/overview'); + $this->assertSession()->pageTextContains($term->getName()); + } + /** * Save, edit and delete a term using the user interface. */ -- GitLab