Exemple #1
0
 /**
  * @param FormEvent $event
  */
 public function fillFormByTemplate(FormEvent $event)
 {
     /** @var Email|null $data */
     $data = $event->getData();
     if (null === $data || !is_object($data) || null === $data->getTemplate()) {
         return;
     }
     if (null !== $data->getSubject() && null !== $data->getBody()) {
         return;
     }
     $emailTemplate = $data->getTemplate();
     $targetEntity = $this->emailModelBuilderHelper->getTargetEntity($data->getEntityClass(), $data->getEntityId());
     list($emailSubject, $emailBody) = $this->emailRenderer->compileMessage($emailTemplate, ['entity' => $targetEntity]);
     if (null === $data->getSubject()) {
         $data->setSubject($emailSubject);
     }
     if (null === $data->getBody()) {
         $data->setBody($emailBody);
     }
 }
 /**
  * @param EmailModel $emailModel
  *
  * @return EmailModel
  */
 public function createEmailModel(EmailModel $emailModel = null)
 {
     if (!$emailModel) {
         $emailModel = $this->factory->getEmail();
         $emailModel->setMailType(EmailModel::MAIL_TYPE_DIRECT);
     }
     if ($this->request && $this->request->getMethod() === 'GET') {
         $this->applyRequest($emailModel);
         if (!$emailModel->getContexts()) {
             $entityClass = $this->request->get('entityClass');
             $entityId = $this->request->get('entityId');
             if ($entityClass && $entityId) {
                 $emailModel->setContexts([$this->helper->getTargetEntity($this->request->get('entityClass'), $this->request->get('entityId'))]);
             }
         }
     }
     $this->applySignature($emailModel);
     $this->initAvailableAttachments($emailModel);
     return $emailModel;
 }