/** * @param User $user * @param Portfolio $portfolio * @param array $range 0 => startDate and 1 => endDate * * @return array */ public function getViewsForChart(User $user, Portfolio $portfolio, array $range) { /** @var \Claroline\CoreBundle\Repository\Log\LogRepository $logRepository */ $logRepository = $this->entityManager->getRepository('ClarolineCoreBundle:Log\\Log'); $queryBuilder = $logRepository->createQueryBuilder('log')->select('log.shortDateLog as shortDate, count(log.id) as total')->orderBy('shortDate', 'ASC')->groupBy('shortDate'); $queryBuilder = $logRepository->addOwnerFilterToQueryBuilder($queryBuilder, $user); $queryBuilder = $logRepository->addActionFilterToQueryBuilder($queryBuilder, PortfolioViewEvent::ACTION); $queryBuilder = $logRepository->addOtherElementIdFilterToQueryBuilder($queryBuilder, $portfolio->getId()); $queryBuilder = $logRepository->addDateRangeFilterToQueryBuilder($queryBuilder, $range); return $logRepository->extractChartData($queryBuilder->getQuery()->getResult(), $range); }
/** * @param Portfolio $portfolio * @param User $user * * @return array */ public function getUserGuidedPortfolioData(Portfolio $portfolio, User $user) { return array('type' => $user === $portfolio->getUser() ? 'owned' : 'guided', 'id' => $portfolio->getId(), 'title' => $portfolio->getTitle(), 'unreadComments' => $portfolio->getCountUnreadComments(), 'commentsViewAt' => $portfolio->getCommentsViewAt()->format(DATE_W3C)); }
/** * Get details. * * @return array */ public function getNotificationDetails() { $receiver = $this->getReceiver(); $notificationDetails = array('portfolio' => array('id' => $this->portfolio->getId(), 'title' => $this->portfolio->getTitle(), 'slug' => $this->portfolio->getSlug()), 'guide' => array('id' => $receiver->getId(), 'publicUrl' => $receiver->getPublicUrl(), 'lastName' => $receiver->getLastName(), 'firstName' => $receiver->getFirstName())); return $notificationDetails; }
public function getLogSignature() { return self::ACTION . '_' . $this->portfolio->getId(); }