/** * @param \Generated\Shared\Transfer\BlockTransfer $blockTransfer * * @throws \Propel\Runtime\Exception\PropelException * @return int */ public function createOrUpdateBlock(BlockTransfer $blockTransfer) { $cmsBlockEntity = $this->queryContainer->queryCmsBlockById($blockTransfer->getIdCmsBlock())->findOneOrCreate(); $cmsBlockEntity->setName($blockTransfer->getName()); $cmsBlockEntity->setTemplateType($blockTransfer->getTemplateType()); $cmsBlockEntity->save(); $idCmsBlock = $cmsBlockEntity->getIdCmsBlock(); $blockTransfer->setIdCmsBlock($idCmsBlock); $this->touchBlock($idCmsBlock); return $idCmsBlock; }
/** * @param \Symfony\Component\Form\FormInterface $blockForm * @param int $idCmsBlock * @param bool $encode * * @return void */ public function handleLocalizedCollectionForm(FormInterface $blockForm, $idCmsBlock, $encode = true) { $blockTransfer = new BlockTransfer(); $blockTransfer->setIdCmsBlock($idCmsBlock); $blockData = $blockForm->getData(); $localizedBlockData = $blockData[LocalizedBlockCollectionForm::FIELD_LOCALIZED_BLOCKS]; foreach ($localizedBlockData as $localeName => $localizedBlock) { $localizedValues = $localizedBlock[LocalizedBlockForm::FIELD_VALUES]; if (!$encode) { $localizedValues = json_decode($localizedValues, true); } $localizedValues = json_encode($localizedValues); $locale = $this->createLocale($localeName, $localizedBlock); $localizedBlockTransfer = new BlockLocalizedTransfer(); $localizedBlockTransfer->setFkCmsBlock($idCmsBlock); $localizedBlockTransfer->setValues($localizedValues); $localizedBlockTransfer->setLocale($locale); $blockTransfer->addLocalizedBlocks($localizedBlockTransfer); } $this->cmsBlockFacade->createOrUpdateLocalizedBlocks($blockTransfer); }