getResourcesByCourse($course, $session); return $this->getCount($qb); } public function countUserForumPosts(User $user, Course $course, ?Session $session = null): int { $qb = $this->getResourcesByCourseLinkedToUser($user, $course, $session); return $this->getCount($qb); } /*public function findAllInCourseByThread( bool $onlyVisible, bool $isAllowedToEdit, CForumThread $thread, Course $course, User $currentUser = null, CGroup $group = null, string $orderDirection = 'ASC' ): array { $conditionVisibility = $onlyVisible ? 'p.visible = 1' : 'p.visible != 2'; $conditionModerated = ''; $filterModerated = true; if ( (empty($group) && $isAllowedToEdit) || ( (null !== $group ? $group->hasTutor($currentUser) : false) || !$onlyVisible ) ) { $filterModerated = false; } if ($filterModerated && $onlyVisible && $thread->getForum()->isModerated()) { $userId = null !== $currentUser ? $currentUser->getId() : 0; $conditionModerated = 'AND p.status = 1 OR (p.status = '.CForumPost::STATUS_WAITING_MODERATION." AND p.posterId = {$userId}) OR (p.status = ".CForumPost::STATUS_REJECTED." AND p.poster = {$userId}) OR (p.status IS NULL AND p.posterId = {$userId})"; } $dql = "SELECT p FROM ChamiloCourseBundle:CForumPost p WHERE p.thread = :thread AND p.cId = :course AND {$conditionVisibility} {$conditionModerated} ORDER BY p.iid {$orderDirection}"; return $this ->getEntityManager() ->createQuery($dql) ->setParameters([ 'thread' => $thread, 'course' => $course, ]) ->getResult() ; }*/ public function delete(ResourceInterface $resource): void { /** @var CForumPost $resource */ $attachments = $resource->getAttachments(); foreach ($attachments as $attachment) { $this->getEntityManager()->remove($attachment); } parent::delete($resource); } }