/** * @param \Generated\Shared\Transfer\BlockTransfer $blockTransfer * @throws \Propel\Runtime\Exception\PropelException * * @return void */ public function createOrUpdateLocalizedBlocks(BlockTransfer $blockTransfer) { $idCmsBlock = $blockTransfer->getIdCmsBlock(); foreach ($blockTransfer->getLocalizedBlocks() as $localizedBlockTransfer) { $cmsLocalizedBlock = $this->queryContainer->queryLocalizedBlockByIdPageAndLocale($blockTransfer->getIdCmsBlock(), $localizedBlockTransfer->getLocale())->findOneOrCreate(); $encodedValues = $localizedBlockTransfer->getValues(); $cmsLocalizedBlock->setFkCmsBlock($idCmsBlock); $cmsLocalizedBlock->setValues($encodedValues); $cmsLocalizedBlock->setFkLocale($localizedBlockTransfer->getLocale()->getIdLocale()); $cmsLocalizedBlock->save(); } $this->touchBlock($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); }
/** * @param \Symfony\Component\Form\FormInterface $blockForm * * @return \Symfony\Component\HttpFoundation\RedirectResponse */ protected function handleBlockForm(FormInterface $blockForm) { $formData = $blockForm->getData(); $blockTransfer = new BlockTransfer(); $blockTransfer->fromArray($formData); $idCmsBlock = $this->getFacade()->createOrUpdateBlock($blockTransfer); $this->addSuccessMessage('CMS Block Updated'); return $this->redirectResponse('/cms-block/block/edit?id-cms-block=' . $idCmsBlock); }
/** * @param array $localizedBlocks * @param \Generated\Shared\Transfer\BlockTransfer $blockTransfer * * @return void */ protected function addLocalizedBlockTransfers(array $localizedBlocks, BlockTransfer $blockTransfer) { $localeCollection = $this->localeFacade->getLocaleCollection(); foreach ($localizedBlocks as $localizedBlock) { $localeName = $localizedBlock[self::LOCALE_NAME]; if (!isset($localeCollection[$localeName])) { continue; } $locale = $localeCollection[$localeName]; $localizedBlockTransfer = new BlockLocalizedTransfer(); $localizedBlockTransfer->setLocale($locale); $localizedBlockTransfer->setValues(json_encode($localizedBlock[self::VALUES])); $blockTransfer->addLocalizedBlocks($localizedBlockTransfer); } }
/** * @param \Generated\Shared\Transfer\PageTransfer $pageTransfer * * @return array */ public function getByPage(PageTransfer $pageTransfer) { $query = $this->queryContainer->queryCmsBlockByPageId($pageTransfer->getIdCmsPage()); $blocks = []; foreach ($query->find() as $blockEntity) { $blockTransfer = new BlockTransfer(); $blockTransfer->fromArray($blockEntity->toArray()); $blocks[] = $blockTransfer; } return $blocks; }