public function createRecipientSource(RecipientSource $recipientSourceEntity) { $recipientSource = new MembersRecipientSourceNoEmail(); if ($recipientSourceEntity->getFilter()) { if ($recipientSourceEntity->getMembersUseGroupFilter()) { $recipientSource->setFilteredGroups($recipientSourceEntity->getMembersGroupFilter()); } /* if ($recipientSourceEntity->getFilterByMailingLists()) { $recipientSource->setFilteredMailingLists($recipientSourceEntity->getMailingLists()->toArray()); } */ if ($recipientSourceEntity->getMembersUsePropertyFilter()) { $recipientSource->setFilteredProperties($recipientSourceEntity->getMembersPropertyFilter()); } } /** @var EventDispatcherInterface $eventDispatcher */ $eventDispatcher = $GLOBALS['container']['event-dispatcher']; /* if ($recipientSourceEntity->getMembersManageSubscriptionPage()) { $getPageDetailsEvent = new GetPageDetailsEvent($recipientSourceEntity->getMembersManageSubscriptionPage()); $eventDispatcher->dispatch(ContaoEvents::CONTROLLER_GET_PAGE_DETAILS, $getPageDetailsEvent); $generateFrontendUrlEvent = new GenerateFrontendUrlEvent($getPageDetailsEvent->getPageDetails()); $eventDispatcher->dispatch(ContaoEvents::CONTROLLER_GENERATE_FRONTEND_URL, $generateFrontendUrlEvent); $url = $generateFrontendUrlEvent->getUrl(); $url .= (strpos($url, '?') !== false ? '&' : '?') . 'avisota_subscription_email=##email##'; if (!preg_match('~^\w+:~', $url)) { $environment = \Environment::getInstance(); $url = rtrim($environment->base, '/') . '/' . ltrim($url, '/'); } $recipientSource->setManageSubscriptionUrlPattern($url); } */ /* if ($recipientSourceEntity->getMembersUnsubscribePage()) { $getPageDetailsEvent = new GetPageDetailsEvent($recipientSourceEntity->getMembersUnsubscribePage()); $eventDispatcher->dispatch(ContaoEvents::CONTROLLER_GET_PAGE_DETAILS, $getPageDetailsEvent); $generateFrontendUrlEvent = new GenerateFrontendUrlEvent($getPageDetailsEvent->getPageDetails()); $eventDispatcher->dispatch(ContaoEvents::CONTROLLER_GENERATE_FRONTEND_URL, $generateFrontendUrlEvent); $url = $generateFrontendUrlEvent->getUrl(); $url .= (strpos($url, '?') !== false ? '&' : '?') . 'avisota_subscription_email=##email##'; if (!preg_match('~^\w+:~', $url)) { $environment = \Environment::getInstance(); $url = rtrim($environment->base, '/') . '/' . ltrim($url, '/'); } $recipientSource->setUnsubscribeUrlPattern($url); } */ $event = new CreateRecipientSourceEvent($recipientSourceEntity, $recipientSource); $eventDispatcher->dispatch(CoreEvents::CREATE_RECIPIENT_SOURCE, $event); return $event->getRecipientSource(); }
/** * @param RecipientSource $entity * * @return mixed * @SuppressWarnings(PHPMD.LongVariable) */ public function createRecipientSource(RecipientSource $entity) { $recipientSource = new RecipientsRecipientSource(); if ($entity->getFilter()) { if ($entity->getFilterByMailingLists()) { $recipientSource->setFilteredMailingLists($entity->getMailingLists()->toArray()); } if ($entity->getRecipientsUsePropertyFilter()) { $recipientSource->setFilteredProperties($entity->getRecipientsPropertyFilter()); } } $this->parseRecipientsManageSubscriptionPage($entity, $recipientSource); $this->parseRecipientsUnsubscribePage($entity, $recipientSource); return $recipientSource; }