/**
  * @param string $localeName
  * @param array $localizedBlock
  *
  * @return \Generated\Shared\Transfer\LocaleTransfer
  */
 protected function createLocale($localeName, array $localizedBlock)
 {
     $locale = new LocaleTransfer();
     $locale->setLocaleName($localeName);
     $locale->setIdLocale((int) $localizedBlock[LocalizedBlockForm::FIELD_FK_LOCALE]);
     return $locale;
 }
예제 #2
0
 /**
  * @param array $translations
  *
  * @return array
  */
 protected function installKeysAndTranslations(array $translations)
 {
     Propel::getConnection()->beginTransaction();
     $results = [];
     foreach ($translations as $keyName => $data) {
         $results[$keyName]['created'] = false;
         if (!$this->keyManager->hasKey($keyName)) {
             $this->keyManager->createKey($keyName);
             $results[$keyName]['created'] = true;
         }
         foreach ($data['translations'] as $localeName => $text) {
             $locale = new LocaleTransfer();
             $locale->setLocaleName($localeName);
             $results[$keyName]['translation'][$localeName]['text'] = $text;
             $results[$keyName]['translation'][$localeName]['created'] = false;
             $results[$keyName]['translation'][$localeName]['updated'] = false;
             if (!$this->translationManager->hasTranslation($keyName, $locale)) {
                 $this->translationManager->createAndTouchTranslation($keyName, $locale, $text, true);
                 $results[$keyName]['translation'][$localeName]['created'] = true;
             } elseif ($this->translationManager->getTranslationByKeyName($keyName, $locale)->getValue() !== $text) {
                 $this->translationManager->updateAndTouchTranslation($keyName, $locale, $text, true);
                 $results[$keyName]['translation'][$localeName]['updated'] = true;
             }
         }
     }
     Propel::getConnection()->commit();
     return $results;
 }
예제 #3
0
 /**
  * @param array $locales
  *
  * @return \Generated\Shared\Transfer\LocaleTransfer
  */
 private function buildLocaleTransferObject(array $locales)
 {
     $locale = new LocaleTransfer();
     $locale->setIdLocale($locales[0]);
     $locale->setLocaleName($this->locales[$locales[0]]);
     $locale->setIsActive(true);
     return $locale;
 }
 /**
  * @param int $idCmsLocalizedBlock
  *
  * @throws \Pav\Zed\CmsBlock\Business\Exception\CmsBlockNotFoundException
  * @return \Generated\Shared\Transfer\BlockTransfer|null
  */
 public function getLocalizedById($idCmsLocalizedBlock)
 {
     $localizedBlockEntity = $this->queryContainer->queryLocalizedBlockById($idCmsLocalizedBlock)->findOne();
     if ($localizedBlockEntity === null) {
         return null;
     }
     $localizedBlockTransfer = new BlockLocalizedTransfer();
     $localizedBlockTransfer->fromArray($localizedBlockEntity->toArray(), true);
     $localeTransfer = new LocaleTransfer();
     $localeTransfer->setLocaleName($localizedBlockEntity->getSpyLocale()->getLocaleName());
     $localeTransfer->setIdLocale($localizedBlockEntity->getSpyLocale()->getIdLocale());
     $localizedBlockTransfer->setLocale($localeTransfer);
     $blockTransfer = $this->getById($localizedBlockEntity->getFkCmsBlock());
     $blockTransfer->addLocalizedBlocks($localizedBlockTransfer);
     return $blockTransfer;
 }