コード例 #1
0
 /**
  * Load all templates for the given email (also load the related layout).
  *
  * @param EmailInterface $email
  */
 public function setEmailTemplates(EmailInterface $email)
 {
     if ($email->getLayout()) {
         // call of getLayoutBody set locale on layout
         $body = $email->getLayoutBody();
         // now we can compute correctly the key cache
         $layoutSuffix = $email->getLayout()->getChecksum();
         $this->setTemplate(sprintf('layout_%s', $layoutSuffix), $body);
         $this->updateDates[sprintf('layout_%s', $layoutSuffix)] = $email->getLayout()->getLastModifiedTimestamp();
         $content = strtr('{% extends \'<layout>\' %}{% block content %}<content>{% endblock %}', array('<layout>' => sprintf('layout_%s', $layoutSuffix), '<content>' => $email->getBody()));
     } else {
         $content = $email->getBody();
     }
     $emailSuffix = $email->getChecksum();
     $this->setTemplate(sprintf('html_content_%s', $emailSuffix), $content);
     $this->setTemplate(sprintf('text_content_%s', $emailSuffix), $email->getBodyText());
     $this->setTemplate(sprintf('subject_%s', $emailSuffix), $email->getSubject());
     $this->setTemplate(sprintf('from_name_%s', $emailSuffix), $email->getFromName());
     $this->setTemplate(sprintf('from_address_%s', $emailSuffix), $email->getFromAddress());
     // keep updated at to be able to check if the template is fresh
     $this->updateDates[sprintf('html_content_%s', $emailSuffix)] = $email->getLastModifiedTimestamp();
     $this->updateDates[sprintf('text_content_%s', $emailSuffix)] = $email->getLastModifiedTimestamp();
     $this->updateDates[sprintf('subject_%s', $emailSuffix)] = $email->getLastModifiedTimestamp();
     $this->updateDates[sprintf('from_name_%s', $emailSuffix)] = $email->getLastModifiedTimestamp();
     $this->updateDates[sprintf('from_address_%s', $emailSuffix)] = $email->getLastModifiedTimestamp();
 }