本文整理汇总了PHP中Repositories\SiteRepository::loadLegacyFeaturesOnSite方法的典型用法代码示例。如果您正苦于以下问题:PHP SiteRepository::loadLegacyFeaturesOnSite方法的具体用法?PHP SiteRepository::loadLegacyFeaturesOnSite怎么用?PHP SiteRepository::loadLegacyFeaturesOnSite使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Repositories\SiteRepository
的用法示例。
在下文中一共展示了SiteRepository::loadLegacyFeaturesOnSite方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: run
protected function run()
{
$siteRepoBuilder = new SiteRepositoryBuilder();
$siteRepoBuilder->setIsOpenBySysAdminsOnly(true);
$siteRepo = new SiteRepository();
$countCheck = 0;
$countSend = 0;
foreach ($siteRepoBuilder->fetchAll() as $site) {
$siteRepo->loadLegacyFeaturesOnSite($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);
}
示例2: run
protected function run()
{
global $CONFIG;
$userRepo = new UserAccountRepository();
$siteRepo = new SiteRepository();
$eventRepo = new EventRepository();
$userWatchesSiteRepository = new UserWatchesSiteRepository();
$userWatchesSiteStopRepository = new UserWatchesSiteStopRepository();
$userAccountGeneralSecurityKeyRepository = new UserAccountGeneralSecurityKeyRepository();
$userNotificationRepo = new UserNotificationRepository();
$userHasNoEditorPermissionsInSiteRepo = new UserHasNoEditorPermissionsInSiteRepository();
$userPermissionsRepo = new UserPermissionsRepository($this->app['extensions']);
/** @var usernotifications/UserWatchesSiteGroupPromptNotificationType **/
$userNotificationType = $this->app['extensions']->getCoreExtension()->getUserNotificationType('UserWatchesSitePrompt');
$b = new UserWatchesSiteRepositoryBuilder();
foreach ($b->fetchAll() as $userWatchesSite) {
$user = $userRepo->loadByID($userWatchesSite->getUserAccountId());
$site = $siteRepo->loadById($userWatchesSite->getSiteId());
$siteRepo->loadLegacyFeaturesOnSite($site);
// This is not the most efficient as it involves DB access and the results might not be used. But it'll do for now.
$userPermissions = $userPermissionsRepo->getPermissionsForUserInSite($user, $site, false, true);
$this->logVerbose(" User " . $user->getEmail() . " Site " . $site->getTitle());
if ($site->getIsClosedBySysAdmin()) {
$this->logVerbose(" ... site is closed");
} else {
if ($userHasNoEditorPermissionsInSiteRepo->isUserInSite($user, $site)) {
$this->logVerbose(" ... user does not have edit permissions allowed in site");
} else {
if (!$userPermissions->hasPermission("org.openacalendar", "CALENDAR_CHANGE")) {
$this->logVerbose(" ... user does not have org.openacalendar/CALENDAR_CHANGE permission in site");
// Technically UserWatchesSiteRepositoryBuilder() should only return getIsWatching() == true but lets double check
} else {
if ($userWatchesSite->getIsWatching()) {
$this->logVerbose(" ... searching for data");
$lastEvent = $eventRepo->loadLastNonDeletedNonImportedByStartTimeInSiteId($site->getId());
$data = $userWatchesSite->getPromptEmailData($site, $lastEvent);
if ($data['moreEventsNeeded']) {
$this->logVerbose(" ... found data");
///// Notification Class
$userNotification = $userNotificationType->getNewNotification($user, $site);
////// Save Notification Class
$userNotificationRepo->create($userNotification);
////// Send Email
if ($userNotification->getIsEmail()) {
$userWatchesSiteStop = $userWatchesSiteStopRepository->getForUserAndSite($user, $site);
configureAppForSite($site);
configureAppForUser($user);
$userAccountGeneralSecurityKey = $userAccountGeneralSecurityKeyRepository->getForUser($user);
$unsubscribeURL = $CONFIG->getWebIndexDomainSecure() . '/you/emails/' . $user->getId() . '/' . $userAccountGeneralSecurityKey->getAccessKey();
$lastEventsBuilder = new EventRepositoryBuilder();
$lastEventsBuilder->setSite($site);
$lastEventsBuilder->setOrderByStartAt(true);
$lastEventsBuilder->setIncludeDeleted(false);
$lastEventsBuilder->setIncludeImported(false);
$lastEventsBuilder->setLimit($CONFIG->userWatchesGroupPromptEmailShowEvents);
$lastEvents = $lastEventsBuilder->fetchAll();
$message = \Swift_Message::newInstance();
$message->setSubject("Any news about " . $site->getTitle() . "?");
$message->setFrom(array($CONFIG->emailFrom => $CONFIG->emailFromName));
$message->setTo($user->getEmail());
$messageText = $this->app['twig']->render('email/userWatchesSitePromptEmail.txt.twig', array('user' => $user, 'lastEvents' => $lastEvents, 'stopCode' => $userWatchesSiteStop->getAccessKey(), 'generalSecurityCode' => $userAccountGeneralSecurityKey->getAccessKey(), 'unsubscribeURL' => $unsubscribeURL));
if ($CONFIG->isDebug) {
file_put_contents('/tmp/userWatchesSitePromptEmail.txt', $messageText);
}
$message->setBody($messageText);
$messageHTML = $this->app['twig']->render('email/userWatchesSitePromptEmail.html.twig', array('user' => $user, 'lastEvents' => $lastEvents, 'stopCode' => $userWatchesSiteStop->getAccessKey(), 'generalSecurityCode' => $userAccountGeneralSecurityKey->getAccessKey(), 'unsubscribeURL' => $unsubscribeURL));
if ($CONFIG->isDebug) {
file_put_contents('/tmp/userWatchesSitePromptEmail.html', $messageHTML);
}
$message->addPart($messageHTML, 'text/html');
$headers = $message->getHeaders();
$headers->addTextHeader('List-Unsubscribe', $unsubscribeURL);
$this->logVerbose(" ... sending");
if (!$CONFIG->isDebug) {
$this->app['mailer']->send($message);
}
$userNotificationRepo->markEmailed($userNotification);
}
$userWatchesSiteRepository->markPromptEmailSent($userWatchesSite, $data['checkTime']);
}
}
}
}
}
}
return array('result' => 'ok');
}
开发者ID:radical-assembly,项目名称:OpenACalendar-Web-Core,代码行数:87,代码来源:SendUserWatchesSitePromptEmailsTask.php
示例3: run
protected function run()
{
global $CONFIG;
$userRepo = new UserAccountRepository();
$siteRepo = new SiteRepository();
$eventRepo = new EventRepository();
$userWatchesSiteRepository = new UserWatchesSiteRepository();
$userWatchesSiteStopRepository = new UserWatchesSiteStopRepository();
$userAccountGeneralSecurityKeyRepository = new UserAccountGeneralSecurityKeyRepository();
$userNotificationRepo = new UserNotificationRepository();
/** @var usernotifications/UserWatchesSiteGroupPromptNotificationType **/
$userNotificationType = $this->app['extensions']->getCoreExtension()->getUserNotificationType('UserWatchesSiteGroupPrompt');
$b = new UserWatchesSiteRepositoryBuilder();
foreach ($b->fetchAll() as $userWatchesSite) {
$user = $userRepo->loadByID($userWatchesSite->getUserAccountId());
$site = $siteRepo->loadById($userWatchesSite->getSiteId());
$siteRepo->loadLegacyFeaturesOnSite($site);
// to avoid flooding user we only send one group email per run
$anyGroupNotificationsSent = false;
$this->logVerbose(" User " . $user->getEmail() . " Site " . $site->getTitle());
if ($site->getIsClosedBySysAdmin()) {
$this->logVerbose(" ... site is closed");
// Technically UserWatchesSiteRepositoryBuilder() should only return getIsWatching() == true but lets double check
} else {
if ($userWatchesSite->getIsWatching()) {
$groupRepoBuilder = new GroupRepositoryBuilder();
$groupRepoBuilder->setSite($site);
$groupRepoBuilder->setIncludeDeleted(false);
foreach ($groupRepoBuilder->fetchAll() as $group) {
if (!$anyGroupNotificationsSent) {
$this->logVerbose(" ... searching group " . $group->getSlug() . " for data");
$lastEvent = $eventRepo->loadLastNonDeletedNonImportedByStartTimeInGroupId($group->getId());
$data = $userWatchesSite->getGroupPromptEmailData($site, $group, $lastEvent);
if ($data['moreEventsNeeded']) {
$this->logVerbose(" ... found data ");
///// Notification Class
$userNotification = $userNotificationType->getNewNotification($user, $site);
$userNotification->setGroup($group);
////// Save Notification Class
$userNotificationRepo->create($userNotification);
////// Send Email
if ($userNotification->getIsEmail()) {
$userWatchesSiteStop = $userWatchesSiteStopRepository->getForUserAndSite($user, $site);
configureAppForSite($site);
configureAppForUser($user);
$userAccountGeneralSecurityKey = $userAccountGeneralSecurityKeyRepository->getForUser($user);
$unsubscribeURL = $CONFIG->getWebIndexDomainSecure() . '/you/emails/' . $user->getId() . '/' . $userAccountGeneralSecurityKey->getAccessKey();
$lastEventsBuilder = new EventRepositoryBuilder();
$lastEventsBuilder->setSite($site);
$lastEventsBuilder->setGroup($group);
$lastEventsBuilder->setOrderByStartAt(true);
$lastEventsBuilder->setIncludeDeleted(false);
$lastEventsBuilder->setIncludeImported(false);
$lastEventsBuilder->setLimit($CONFIG->userWatchesSiteGroupPromptEmailShowEvents);
$lastEvents = $lastEventsBuilder->fetchAll();
$message = \Swift_Message::newInstance();
$message->setSubject("Any news about " . $group->getTitle() . "?");
$message->setFrom(array($CONFIG->emailFrom => $CONFIG->emailFromName));
$message->setTo($user->getEmail());
$messageText = $this->app['twig']->render('email/userWatchesSiteGroupPromptEmail.txt.twig', array('user' => $user, 'group' => $group, 'lastEvents' => $lastEvents, 'stopCode' => $userWatchesSiteStop->getAccessKey(), 'generalSecurityCode' => $userAccountGeneralSecurityKey->getAccessKey(), 'unsubscribeURL' => $unsubscribeURL));
if ($CONFIG->isDebug) {
file_put_contents('/tmp/userWatchesSiteGroupPromptEmail.txt', $messageText);
}
$message->setBody($messageText);
$messageHTML = $this->app['twig']->render('email/userWatchesSiteGroupPromptEmail.html.twig', array('user' => $user, 'group' => $group, 'lastEvents' => $lastEvents, 'stopCode' => $userWatchesSiteStop->getAccessKey(), 'generalSecurityCode' => $userAccountGeneralSecurityKey->getAccessKey(), 'unsubscribeURL' => $unsubscribeURL));
if ($CONFIG->isDebug) {
file_put_contents('/tmp/userWatchesSiteGroupPromptEmail.html', $messageHTML);
}
$message->addPart($messageHTML, 'text/html');
$headers = $message->getHeaders();
$headers->addTextHeader('List-Unsubscribe', $unsubscribeURL);
$this->logVerbose(" ... sending");
if (!$CONFIG->isDebug) {
$this->app['mailer']->send($message);
}
$userNotificationRepo->markEmailed($userNotification);
}
$userWatchesSiteRepository->markGroupPromptEmailSent($userWatchesSite, $group, $data['checkTime']);
$anyGroupNotificationsSent = true;
}
}
}
}
}
}
return array('result' => 'ok');
}
开发者ID:radical-assembly,项目名称:OpenACalendar-Web-Core,代码行数:87,代码来源:SendUserWatchesSiteGroupPromptEmailsTask.php