My code:
<?php $blockObj= $block->getLayout()->createBlock('Zero\DescBlock\Block\ActiveFilter'); $final_value = 'filter_block_'.$blockObj->getActiveFilter(); $check=array('NULL', '', 'filter_block_'); if(!in_array( $final_value, $check )) { echo $this->getLayout() ->createBlock('Magento\Cms\Block\Block') ->setBlockId($final_value) ->toHtml(); } else{ echo $this->getLayout() ->createBlock('Magento\Cms\Block\Block') ->setBlockId('category_desc_block') ->toHtml(); } ?>
How to unset block in else conditions?
Hi @Aveeva ,
Try below way to unset block from the layout. Use unsetElement() method to remove block.
$layout = $this->getLayout(); $block = $layout->getBlock('catalog.topnav'); // block name $layout->unsetElement('catalog.topnav');
Hope this helps you!
Problem Solved! Click Kudos & Accept as Solution!
Hi @Aveeva,
You can delete CMS static block programmatically using deleteById() function of Magento\Cms\Api\BlockRepositoryInterface interface.
use Magento\Cms\Api\BlockRepositoryInterface; use Magento\Framework\Exception\LocalizedException; public function __construct( BlockRepositoryInterface $blockRepository ) { $this->blockRepository = $blockRepository; } /** * @param int $blockId * @return bool */ public function deleteCmsBlock(int $blockId) { try { $result = $this->blockRepository->deleteById($blockId); } catch (LocalizedException $exception) { throw $exception->getMessage(); } return $result; }
Hope this can help you! Let me know if you need further assistance.
__________
If issue solved, Click Kudos & Accept as Solution.