/**
  * {@inheritdoc}
  */
 public function createForm($email = null, $lang = null)
 {
     $edit = $email !== null;
     $this->locale = $lang ?: $this->defaultLocale;
     if ($edit) {
         $translation = $email->getTranslation($this->locale);
     } else {
         $email = new Email();
         $translation = new EmailTranslation($this->defaultLocale);
         $translation->setEmail($email);
     }
     $model = new EntityTranslationModel($email, $translation);
     return $this->factory->create('mailer_email', $model, array('data_translation' => $translation, 'edit' => $edit));
 }
Exemplo n.º 2
0
 /**
  * Get EmailTranslation for a given lang, if not exist it will be created
  *
  * @param string $lang
  *
  * @return EmailTranslation
  */
 public function getTranslation($lang)
 {
     // Check if locale given
     if (strpos($lang, '_')) {
         $parts = explode('_', $lang);
         $lang = array_shift($parts);
     }
     foreach ($this->getTranslations() as $translation) {
         if ($translation->getLang() === $lang) {
             return $translation;
         }
     }
     $translation = new EmailTranslation($lang);
     $translation->setEmail($this);
     return $translation;
 }
Exemplo n.º 3
0
 /**
  * Get EmailTranslation for a given lang, if not exist it will be created
  *
  * @param string $lang
  * @throws \InvalidArgumentException
  * @return EmailTranslation
  */
 public function getTranslation($lang)
 {
     // Check if locale given
     if (strpos($lang, '_')) {
         $parts = explode('_', $lang);
         $lang = array_shift($parts);
     }
     if (strlen($lang) != 2) {
         throw new \InvalidArgumentException(sprintf('$lang is not valid : "%s" given', $lang));
     }
     foreach ($this->getTranslations() as $translation) {
         if ($translation->getLang() === $lang) {
             return $translation;
         }
     }
     $translation = new EmailTranslation($lang);
     $translation->setEmail($this);
     return $translation;
 }