/** * @param CampaignEntity $entity * @param MessageEntity $message * * @return bool */ public function handlePost(CampaignEntity $entity, MessageEntity $message) { $form = $this->getForm(); if ($this->request->isPost()) { $postData = $this->request->getPost(); $form->setData($postData); if ($form->isValid()) { $entity->populate($this->getCampaignData($form)); $message->populate($this->getMessageData($form)); $this->handleSystemMessage($entity, $message); return $this->saveEntity($entity); } } $form->bind($entity); $form->get(CampaignForm::WELCOME_SUBJECT)->setValue($message->getSubject()); $form->get(CampaignForm::WELCOME_MESSAGE)->setValue($message->getBody()); return false; }
/** * @return Entity\Campaign */ protected function getSummerCampaign() { $campaign = new Entity\Campaign(); $campaign->setName('Summer'); $campaign->setSenderAddress('*****@*****.**'); $campaign->setFromAddress('*****@*****.**'); $campaign->setReplyToAddress('*****@*****.**'); $campaign->setTemplate($this->getReference('summer-template')); return $campaign; }
/** * @param Subscriber $subscriber * @param Campaign $campaign * @param string $subject * @param string $body * @param array $headerLines */ protected function mail(Subscriber $subscriber, Campaign $campaign, $subject, $body, $headerLines = []) { $mail = $this->sxMail->compose($body); $mail->setSender($campaign->getSenderAddress())->setTo($subscriber->getEmailAddress())->setSubject($subject); if ($campaign->getFromAddress()) { $mail->setFrom($campaign->getFromAddress()); } if ($campaign->getReplyToAddress()) { $mail->setReplyTo($campaign->getReplyToAddress()); } foreach ($headerLines as $headerLine) { $mail->getHeaders()->addHeaderLine($headerLine); } $this->sxMail->send($mail); }
/** * @param Campaign $campaign * * @return string */ private function getUnsubscribeUrl(Campaign $campaign) { $params = ['securityKey' => $campaign->getSecurityKey()]; $options = ['force_canonical' => true]; return $this->fakeUrl->fromRoute('unsubscribe', $params, $options); }
/** * @return bool */ public function hasCampaign(Campaign $campaignChecked) { foreach ($this->getCampaigns() as $campaign) { if ($campaign->getId() === $campaignChecked->getId()) { return true; } } return false; }