/** * @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; }