protected function run() { $siteRepoBuilder = new SiteRepositoryBuilder(); $siteRepoBuilder->setIsOpenBySysAdminsOnly(true); $countCheck = 0; $countSend = 0; foreach ($siteRepoBuilder->fetchAll() as $site) { $this->logVerbose("Site " . $site->getSlug()); $userRepoBuilder = new UserAccountRepositoryBuilder(); $userRepoBuilder->setIsOpenBySysAdminsOnly(true); foreach ($userRepoBuilder->fetchAll() as $userAccount) { $this->logVerbose("User " . $userAccount->getId()); ++$countCheck; $checkTime = \TimeSource::getDateTime(); $contentsToSend = array(); foreach ($this->app['extensions']->getExtensionsIncludingCore() as $extension) { $contentsToSend = array_merge($contentsToSend, $extension->getUserNotifyContents($site, $userAccount)); } if ($contentsToSend) { $this->logVerbose("Found contents!"); ++$countSend; $this->makeSureHistoriesAreCorrect($contentsToSend); $this->sendFor($site, $userAccount, $contentsToSend); foreach ($contentsToSend as $contentToSend) { $contentToSend->markNotificationSent($checkTime); } } else { $this->logVerbose("found nothing"); } } } return array('result' => 'ok', 'countCheck' => $countCheck, 'countSend' => $countSend); }
function discover(Application $app) { $srb = new SiteRepositoryBuilder(); $srb->setIsListedInIndexOnly(true); $srb->setIsOpenBySysAdminsOnly(true); $sites = $srb->fetchAll(); return $app['twig']->render('index/index/discover.html.twig', array('sites' => $sites)); }
function sites(Request $request, Application $app) { $srb = new SiteRepositoryBuilder(); $srb->setUserInterestedIn($app['currentUser']); $srb->setIsOpenBySysAdminsOnly(true); return $app['twig']->render('index/currentuser/sites.html.twig', array('sites' => $srb->fetchAll())); }