diff --git a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/ItemRepository.php b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/ItemRepository.php index 6ec3aadd..9d4c8925 100644 --- a/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/ItemRepository.php +++ b/src/ninegate-1.0/src/Cadoles/PortalBundle/Repository/ItemRepository.php @@ -32,9 +32,11 @@ class ItemRepository extends EntityRepository // Initialisation du calcul des items $items=new ArrayCollection(); + $itemalls=new ArrayCollection(); // Récupération des items par rôles $itemsroles=[]; + foreach($roles as $role) { $qb = $this->getEntityManager()->createQueryBuilder(); $qb->select('item') @@ -54,6 +56,7 @@ class ItemRepository extends EntityRepository $itemsroles=$qb->getQuery()->getResult(); foreach($itemsroles as $itemrole) { if(!$bookmarksitems->contains($itemrole) && !$items->contains($itemrole)) $items->add($itemrole); + if(!$itemalls->contains($itemrole)) $itemalls->add($itemrole); } } @@ -79,9 +82,12 @@ class ItemRepository extends EntityRepository $itemsgroups=$qb->getQuery()->getResult(); foreach($itemsgroups as $itemgroup) { if(!$bookmarksitems->contains($itemgroup) && !$items->contains($itemgroup)) $items->add($itemgroup); + if(!$itemalls->contains($itemgroup)) $itemalls->add($itemgroup); } + + } - + // Récupération des items par niveau01 $itemsniveau01s=[]; @@ -105,6 +111,7 @@ class ItemRepository extends EntityRepository $itemsniveau01s=$qb->getQuery()->getResult(); foreach($itemsniveau01s as $itemniveau01) { if(!$bookmarksitems->contains($itemniveau01) && !$items->contains($itemniveau01)) $items->add($itemniveau01); + if(!$itemalls->contains($itemniveau01)) $itemalls->add($itemniveau01); } } @@ -130,6 +137,7 @@ class ItemRepository extends EntityRepository $itemsssoitems=$qb->getQuery()->getResult(); foreach($itemsssoitems as $itemssoitem) { if(!$bookmarksitems->contains($itemssoitem) && !$items->contains($itemssoitem)) $items->add($itemssoitem); + if(!$itemalls->contains($itemssoitem)) $itemalls->add($itemssoitem); } } @@ -137,7 +145,7 @@ class ItemRepository extends EntityRepository foreach($bookmarks as $key => $bookmark) { $item=$bookmark->getItem(); if($item) { - if(!in_array($item,$itemsroles) && !in_array($item,$itemsgroups) && !in_array($item,$itemsniveau01s) && !in_array($item,$itemsssoitems) ) { + if(!$itemalls->contains($item) ) { unset($bookmarks[$key]); } }