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 getForm($obj = null, $options = array()) { if (!$obj) { $obj = new TransUnit(); $obj->fromArray(array('cat_id' => 4)); } return new VariablesForm($obj, $options); }
public function embedNewVariables($source, $langs) { foreach ($langs as $lang) { if (!isset($this[$this->getEmbedFieldName($source, $lang)])) { $tu = new TransUnit(); $tu->fromArray(array('target' => '', 'translated' => 1, 'source' => $source, 'cat_id' => TransUnitExtendedTranslationForm::getInstance()->getCatalogueID($lang))); $this->embedForm($this->getEmbedFieldName($source, $lang), new TransUnitExtendedTranslationForm($tu, array(), false)); } } }
public static function createWildcard($wildcard, $catalogue) { // get all available languages $langs = LanguageTable::getAllLanguages(false); foreach ($langs as $l) { $lQuery = Doctrine_Query::create()->from('Catalogue c')->select('c.cat_id')->where('c.name= ?', $catalogue . '.' . $l->getLang()); $catId = $lQuery->execute(array(), Doctrine_Core::HYDRATE_NONE); $catId = HydrationUtils::flattenArray($catId); if (!$catId) { continue; } $t = new TransUnit(); $t->setCatId($catId[0]); $t->setSource($wildcard); $t->save(); } }
/** * Adds an object to the instance pool. * * Propel keeps cached copies of objects in an instance pool when they are retrieved * from the database. In some cases -- especially when you override doSelect*() * methods in your stub classes -- you may need to explicitly add objects * to the cache in order to ensure that the same objects are always returned by doSelect*() * and retrieveByPK*() calls. * * @param TransUnit $value A TransUnit object. * @param string $key (optional) key to use for instance map (for performance boost if key was already calculated externally). */ public static function addInstanceToPool(TransUnit $obj, $key = null) { if (Propel::isInstancePoolingEnabled()) { if ($key === null) { $key = (string) $obj->getMsgId(); } // if key === null self::$instances[$key] = $obj; } }