示例#1
0
 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);
 }
示例#3
0
 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;
     }
 }