diff --git a/main/inc/lib/PortfolioController.php b/main/inc/lib/PortfolioController.php index a958050973..7a86905db2 100644 --- a/main/inc/lib/PortfolioController.php +++ b/main/inc/lib/PortfolioController.php @@ -1203,12 +1203,18 @@ class PortfolioController ; } - $comments = $commentsQueryBuilder - ->orderBy('comment.root, comment.lft', 'ASC') - ->setParameter('item', $item) - ->getQuery() - ->getArrayResult() - ; + if (true === api_get_configuration_value('portfolio_show_base_course_post_in_sessions') + && $this->session && !$item->getSession() && !$item->isDuplicatedInSession($this->session) + ) { + $comments = []; + } else { + $comments = $commentsQueryBuilder + ->orderBy('comment.root, comment.lft', 'ASC') + ->setParameter('item', $item) + ->getQuery() + ->getArrayResult() + ; + } $clockIcon = Display::returnFontAwesomeIcon('clock-o', '', true); @@ -3762,6 +3768,9 @@ class PortfolioController $currentUserId = api_get_user_id(); if ($this->course) { + $showBaseContentInSession = $this->session + && true === api_get_configuration_value('portfolio_show_base_course_post_in_sessions'); + $queryBuilder = $this->em->createQueryBuilder(); $queryBuilder ->select('pi') @@ -3771,7 +3780,9 @@ class PortfolioController $queryBuilder->setParameter('course', $this->course); if ($this->session) { - $queryBuilder->andWhere('pi.session = :session'); + $queryBuilder->andWhere( + $showBaseContentInSession ? 'pi.session = :session OR pi.session IS NULL' : 'pi.session = :session' + ); $queryBuilder->setParameter('session', $this->session); } else { $queryBuilder->andWhere('pi.session IS NULL'); @@ -3894,6 +3905,15 @@ class PortfolioController $queryBuilder->orderBy('pi.creationDate', 'DESC'); $items = $queryBuilder->getQuery()->getResult(); + + if ($showBaseContentInSession) { + $items = array_filter( + $items, + fn(Portfolio $item) => !($this->session && !$item->getSession() && $item->isDuplicatedInSession($this->session)) + ); + } + + return $items; } else { $itemsCriteria = []; $itemsCriteria['category'] = null; diff --git a/main/template/default/portfolio/items.html.twig b/main/template/default/portfolio/items.html.twig index 2fe874dd2c..f1baabeb17 100644 --- a/main/template/default/portfolio/items.html.twig +++ b/main/template/default/portfolio/items.html.twig @@ -11,6 +11,12 @@ {% set item_url = baseurl ~ {'action':'view', 'id':item.id}|url_encode %} {% set comments = item.lastComments(3, is_advanced_sharing_enabled) %} + {% if 'portfolio_show_base_course_post_in_sessions'|api_get_configuration_value %} + {% if _c.session_id and not item.session and not item.isDuplicatedInSessionId(_c.session_id) %} + {% set comments = {} %} + {% endif %} + {% endif %} +