public function executeUpdate($request) { $source = $request->getParameter('transUnit'); $unitvars = $request->getParameter('unitvars'); foreach ($unitvars as $lang => $val) { // 1. check that $lang catalogue exists $catalogue = Doctrine::getTable('Catalogue')->findOneByTargetLangAndName($lang, 'messages.' . $lang); if (!$catalogue) { //1.1 if not then add it $catalogue = new Catalogue(); $catalogue->fromArray(array('name' => 'messages.' . $lang, 'source_lang' => 'en', 'target_lang' => $lang)); $catalogue->save(); } $transUnit = Doctrine::getTable('TransUnit')->findOneByLangAndCategory($source, $catalogue->cat_id); if (!$transUnit) { $transUnit = new TransUnit(); $transUnit->fromArray(array('source' => $source)); $transUnit->setCatalogue($catalogue); } $transUnit->setTarget($val); $transUnit->translated = empty($val) ? 0 : 1; $transUnit->save(); } $this->clearCache(); $this->redirect('@admin_page?module=translation&action=edit&source=' . $source); }
public function getCatalogueID($lang) { $cat = Doctrine::getTable('Catalogue')->findOneByNameAndTargetLang($this->getCatalogueBaseName() . '.' . $lang, $lang); if ($cat) { return $cat['cat_id']; } else { $cat = new Catalogue(); $cat->fromArray(array('name' => $this->getCatalogueBaseName() . '.' . $lang, 'source_lang' => 'en', 'target_lang' => $lang)); $cat->save(); return $cat['cat_id']; } }