From 4a00013b48f10c19cf9eae6c8fd3ccc8a6eb6356 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?ANDRE=20s=C3=A9bastien?= <sandre@afi-sa.fr>
Date: Fri, 23 Jun 2023 09:42:17 +0000
Subject: [PATCH] hotline : facet dynamic find without code

---
 VERSIONS_HOTLINE/180690                               |  1 +
 library/ZendAfi/Form/Element/SelectDynamicFacet.php   | 10 +++++-----
 tests/scenarios/AdvancedSearch/AdvancedSearchTest.php | 10 +++++-----
 3 files changed, 11 insertions(+), 10 deletions(-)
 create mode 100644 VERSIONS_HOTLINE/180690

diff --git a/VERSIONS_HOTLINE/180690 b/VERSIONS_HOTLINE/180690
new file mode 100644
index 00000000000..02c4a419a8e
--- /dev/null
+++ b/VERSIONS_HOTLINE/180690
@@ -0,0 +1 @@
+ - correctif #180690 : Recherche avancée : Les formulaires personnalisés récupèrent maintenant correctement les libellés des facettes dynamiques
diff --git a/library/ZendAfi/Form/Element/SelectDynamicFacet.php b/library/ZendAfi/Form/Element/SelectDynamicFacet.php
index ef7dcd11eb5..384c06d0f1e 100644
--- a/library/ZendAfi/Form/Element/SelectDynamicFacet.php
+++ b/library/ZendAfi/Form/Element/SelectDynamicFacet.php
@@ -21,22 +21,22 @@
 
 
 class ZendAfi_Form_Element_SelectDynamicFacet extends Zend_Form_Element_Select {
+
   public function init() {
-    if (!$thesaurus = Class_CodifThesaurus::findFirstBy(['rules not' => null,
-                                                         'code' => $this->_getCodeThesaurus(),
-                                                         'id_thesaurus not' => null]))
+    if ( ! $thesaurus = Class_CodifThesaurus::findFirstBy(['rules not' => null,
+                                                           'id_thesaurus' => $this->_getIdThesaurus()]))
       return;
 
     $this->setMultiOptions($this->_buildThesaurusChildrenEntries($thesaurus));
   }
 
 
-  protected function _getCodeThesaurus() {
+  protected function _getIdThesaurus() : string {
     return str_replace('rech_' . Class_CodifThesaurus::CODE_FACETTE, '', $this->getName());
   }
 
 
-  protected function _buildThesaurusChildrenEntries($thesaurus) {
+  protected function _buildThesaurusChildrenEntries(Class_CodifThesaurus $thesaurus) : array {
     $options = ['' => ''];
 
     foreach (Class_CodifThesaurus::findChildrenOfWith($thesaurus->getIdThesaurus(),
diff --git a/tests/scenarios/AdvancedSearch/AdvancedSearchTest.php b/tests/scenarios/AdvancedSearch/AdvancedSearchTest.php
index ea10b1dc2f1..fe5609d60d7 100644
--- a/tests/scenarios/AdvancedSearch/AdvancedSearchTest.php
+++ b/tests/scenarios/AdvancedSearch/AdvancedSearchTest.php
@@ -402,7 +402,7 @@ class AdvancedSearchFormWithDateSelectorsTest extends AdvancedSearchCustomFormSe
                     'libelle' => 'Année de publication',
                     'id_thesaurus' => 'APUB',
                     'id_origine' => null,
-                    'code' => 'APUB',
+                    'code' => 'UNIMARC',
                     'rule_list_zone' => ['995'],
                     'rule_list_label_field' => ['w'],
                     'rule_list_label_start_pos' => [1],
@@ -415,7 +415,7 @@ class AdvancedSearchFormWithDateSelectorsTest extends AdvancedSearchCustomFormSe
                     'libelle' => 'Mois de publication',
                     'id_thesaurus' => 'MPUB',
                     'id_origine' => null,
-                    'code' => 'MPUB',
+                    'code' => 'UNIMARC',
                     'rule_list_zone' => ['995'],
                     'rule_list_label_field' => ['w'],
                     'rule_list_label_start_pos' => [6],
@@ -427,7 +427,7 @@ class AdvancedSearchFormWithDateSelectorsTest extends AdvancedSearchCustomFormSe
                     'libelle' => 'Jour de publication',
                     'id_thesaurus' => 'JPUB',
                     'id_origine' => null,
-                    'code' => 'JPUB',
+                    'code' => 'UNIMARC',
                     'rule_list_zone' => ['995'],
                     'rule_list_label_field' => ['w'],
                     'rule_list_label_start_pos' => [9],
@@ -439,7 +439,7 @@ class AdvancedSearchFormWithDateSelectorsTest extends AdvancedSearchCustomFormSe
                     'libelle' => '3',
                     'id_thesaurus' => 'JPUB0003',
                     'id_origine' => null,
-                    'code' => 'JPUB',
+                    'code' => 'UNIMARC',
                    ]);
 
     $this->fixture(Class_CodifThesaurus::class,
@@ -447,7 +447,7 @@ class AdvancedSearchFormWithDateSelectorsTest extends AdvancedSearchCustomFormSe
                     'libelle' => '1',
                     'id_thesaurus' => 'JPUB0001',
                     'id_origine' => null,
-                    'code' => 'JPUB',
+                    'code' => 'UNIMARC',
                    ]);
 
 
-- 
GitLab