Esempio n. 1
0
 /**
  * @param LifecycleEventArgs $eventArgs
  */
 public function postUpdate(LifecycleEventArgs $eventArgs)
 {
     $document = $eventArgs->getDocument();
     $dm = $eventArgs->getDocumentManager();
     if ($document instanceof Translation) {
         /** @var Translation $document */
         $projectId = $document->getProjectId();
         $projectInfo = $dm->getRepository('TranslationsBundle:ProjectInfo')->getProjectInfo($projectId);
         if (!$projectInfo) {
             $projectInfo = new ProjectInfo();
             $projectInfo->setProjectId($projectId);
         }
         if (isset($this->cache["id"]) && $this->cache["id"] == $document->getId()) {
             $projectInfo->subBundle($this->cache['bundle']);
             $projectInfo->subCatalog($this->cache['catalog']);
         }
         $projectInfo->addBundle($document->getBundle());
         $projectInfo->addCatalog($document->getCatalog());
         $dm->persist($projectInfo);
         $dm->flush();
         return;
     }
 }
Esempio n. 2
0
 /**
  * @param $projectId
  * @return ProjectInfo
  */
 public function regenerateProjectInfo($projectId)
 {
     /** @var ProjectInfo $projectInfo */
     $projectInfo = $this->getProjectInfoRepository()->getProjectInfo($projectId);
     if (!$projectInfo) {
         $projectInfo = new ProjectInfo();
         $projectInfo->setProjectId($projectId);
     }
     $projectInfo->setBundles(array());
     $projectInfo->setCatalogs(array());
     /** @var Translation[] $translations */
     $translations = $this->getTranslationRepository()->findBy(array("projectId" => intval($projectId)));
     foreach ($translations as $translation) {
         $bundle = $translation->getBundle();
         $projectInfo->addBundle($bundle);
         $catalog = $translation->getCatalog();
         $projectInfo->addCatalog($catalog);
     }
     $this->dm->persist($projectInfo);
     $this->dm->flush();
     return $projectInfo;
 }