function onThisStepSetUpPageView() { $out = array('groupSearchText' => $this->request->request->get('groupsearch')); if ($this->request->request->get('action') == 'groupsearch') { $grb = new GroupRepositoryBuilder(); $grb->setSite($this->site); $grb->setIncludeDeleted(false); $grb->setFreeTextsearch($this->request->request->get('groupsearch')); $grb->setLimit(100); $out['groups'] = $grb->fetchAll(); } return $out; }
/** * @return array */ public function getUserNotifyContentForSiteAndUser(\models\SiteModel $siteModel, UserAccountModel $userAccountModel) { global $CONFIG; if (!$siteModel->getIsFeatureGroup()) { return array(); } $out = array(); $grb = new GroupRepositoryBuilder(); $grb->setSite($siteModel); $grb->setLimit(0); // all! No limit // TODO don't we still want to do this? How will user A get a notification if user B deletes group? but then so far most group deletetions are by admins. $grb->setIncludeDeleted(false); foreach ($grb->fetchAll() as $group) { $uwg = $this->loadByUserAndGroup($userAccountModel, $group); if ($uwg && $uwg->getIsWatching()) { $dateSince = $uwg->getSinceDateForNotifyChecking(); $historyRepositoryBuilder = new HistoryRepositoryBuilder(); $historyRepositoryBuilder->setGroup($group); $historyRepositoryBuilder->setSince($dateSince); $historyRepositoryBuilder->setNotUser($userAccountModel); // Only admins can change tags at the moment so don't include $historyRepositoryBuilder->setIncludeTagHistory(false); $histories = $historyRepositoryBuilder->fetchAll(); if ($histories) { $content = new UserWatchesGroupNotifyContent(); $content->setHistories($histories); $userWatchesGroupStopRepository = new UserWatchesGroupStopRepository(); $userWatchesGroupStop = $userWatchesGroupStopRepository->getForUserAndGroup($userAccountModel, $group); $content->setUnwatchURL($CONFIG->getWebSiteDomainSecure($siteModel->getSlug()) . '/group/' . $group->getSlugForURL() . '/stopWatchingFromEmail/' . $userAccountModel->getId() . '/' . $userWatchesGroupStop->getAccessKey()); $content->setUserAccount($userAccountModel); $content->setSite($siteModel); $content->setGroup($group); $content->setWatchedThingTitle($group->getTitle()); $content->setWatchedThingURL($CONFIG->getWebSiteDomainSecure($siteModel->getSlug()) . '/group/' . $group->getSlugForURL() . '/history'); $out[] = $content; } } } return $out; }