diff --git a/VERSIONS_HOTLINE/102979 b/VERSIONS_HOTLINE/102979 new file mode 100644 index 0000000000000000000000000000000000000000..13207bf070fa615e341dbebb05291c94679987db --- /dev/null +++ b/VERSIONS_HOTLINE/102979 @@ -0,0 +1 @@ + - ticket #102979 : Correction de la perte de boîte dans une page enfant avec boite deux colonnes lorsque la page parente contenait des boites dans la bannière \ No newline at end of file diff --git a/library/Class/Profil.php b/library/Class/Profil.php index b586aba78ec12f8f575c6bd08e0fc48a60b802e7..2ff1164cd98e26581f681d66f5fdfc95609130d2 100644 --- a/library/Class/Profil.php +++ b/library/Class/Profil.php @@ -1975,12 +1975,19 @@ class Class_Profil extends Storm_Model_Abstract { protected function doNotUseIds($ids) { + $ids_not_in_twocols_widget = function($id) { + return $id < 1000; + }; + + $ids = array_filter($ids, $ids_not_in_twocols_widget); + $my_cfg = $this->getCfgAccueilAsArray(); if(!isset($my_cfg['modules'])) return; - if(!$my_modules_ids = array_keys($my_cfg['modules'])) + if(!$my_modules_ids = array_filter(array_keys($my_cfg['modules']), + $ids_not_in_twocols_widget)) return; if(!$duplicate_ids = array_intersect($ids, $my_modules_ids)) @@ -1995,6 +2002,8 @@ class Class_Profil extends Storm_Model_Abstract { } + + protected function changeIdModuleTo($id, $new_id) { $cfg_accueil = $this->getCfgAccueilAsArray(); $modules = $cfg_accueil['modules']; diff --git a/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php b/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php index 28e788296e02caca60bc104c4697293cee9d2e81..b68b9ffd1c0132e0de73829c3362c9ec1ad7f46a 100644 --- a/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php +++ b/tests/application/modules/opac/controllers/ProfilOptionsControllerTest.php @@ -2737,7 +2737,24 @@ abstract class ProfilOptionControllerHeritedModulesTestCase extends AbstractCont ->setCfgAccueil(['modules' => ['4' => ['division' => '1', 'type_module' => 'NEWS'], '10' => ['division' => '1', - 'type_module' => 'CALENDAR']]]); + 'type_module' => 'CALENDAR'], + '1' => [ + 'division' => 1, + 'type_module' => 'CONTENEUR_DEUX_COLONNES', + 'preferences' => ['titre' => 'A la une', + 'col_gauche_type' => 'NEWS', + 'col_droite_type' => 'SITO', + 'col_gauche_module_id' => 1000, + 'col_droite_module_id' => '1002'] + ], + '1000' => [ + 'type_module' => 'NEWS', + 'preferences' => []], + '1002' => [ + 'type_module' => 'SITO', + 'preferences' => []] + + ]]); } } @@ -2752,6 +2769,12 @@ class ProfilOptionControllerWithHeritedBannerTest extends ProfilOptionController } + /** @test */ + public function htmlShouldContainsContainer2ColonnesinBoite11() { + $this->assertXPath('//div[@id="boite_11"]//div[@class="conteneur2colonnes"]',$this->_response->getBody()); + } + + /** @test */ public function htmlShouldContainsOnlyOneIdBoite4() { $this->assertXPathCount('//div[@id="boite_4"]', 1); @@ -2766,7 +2789,8 @@ class ProfilOptionControllerWithHeritedBannerTest extends ProfilOptionController /** @test */ public function profilShouldIncrementCfgIdsAndDeleteOldIdAndKeepPositions() { - $this->assertEquals([11,10], array_keys(Class_Profil::find(2)->getCfgAccueilAsArray()['modules'])); + $this->assertEquals([12,10,11,1000,1002], + array_keys(Class_Profil::find(2)->getCfgAccueilAsArray()['modules'])); } } @@ -2800,7 +2824,7 @@ class ProfilOptionControllerWithHeritedPagesTest extends ProfilOptionControllerH /** @test */ public function profilShouldIncrementCfgIdsAndDeleteOldIdAndKeepPosition() { - $this->assertEquals([11,10], array_keys(Class_Profil::find(2)->getCfgAccueilAsArray()['modules'])); + $this->assertEquals([12,10,11,1000,1002], array_keys(Class_Profil::find(2)->getCfgAccueilAsArray()['modules'])); } }