コード例 #1
0
 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;
 }