/** * {@inheritdoc} */ public function createForm($layout = null, $lang = null) { $edit = $layout !== null; $this->locale = $lang ?: $this->defaultLocale; if ($edit) { $translation = $layout->getTranslation($this->locale); } else { $layout = new Layout(); $translation = new LayoutTranslation($this->defaultLocale); $translation->setLayout($layout); } $model = new EntityTranslationModel($layout, $translation); return $this->factory->create('mailer_layout', $model, array('data_translation' => $translation, 'edit' => $edit)); }
/** * Get LayoutTranslation for a given lang, if not exist it will be created * * @param string $lang * * @throws \InvalidArgumentException * @return \Lexik\Bundle\MailerBundle\Entity\LayoutTranslation */ 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 LayoutTranslation($lang); $translation->setLayout($this); return $translation; }
/** * Get LayoutTranslation for a given lang, if not exist it will be created * * @param string $lang * * @return \Lexik\Bundle\MailerBundle\Entity\LayoutTranslation */ 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 LayoutTranslation($lang); $translation->setLayout($this); return $translation; }