in my root.phtml, I can call for cms page content with :
<?php echo $layoutContent; ?>
but I wanted to use $cmsPage->getContent() instead :
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$cmsPage = $objectManager->get('\Magento\Cms\Model\Page');
echo $cmsPage->getContent();
?>
I get this for result which is correct but not converting to html interpretation :
{{block class="Magento\Framework\View\Element\Template" template="Magento_Theme::cms/home.phtml"}}
Do you know if I could get it work ? ( toHtml() function return error )
Thanks
Abhishek Panchal
4,9643 gold badges22 silver badges39 bronze badges
-
bit.ly/2ofZIHT refers link.Rakesh Jesadiya– Rakesh Jesadiya2018年08月28日 17:57:26 +00:00Commented Aug 28, 2018 at 17:57
2 Answers 2
app/code/Ravindra/slider/Block/slider.php
<?php
namespace Ravindra\slider\Block;
use Magento\Framework\View\Element\Template;
class slider extends Template
{
protected $filterProvider;
public function __construct(
Template\Context $context,
\Magento\Cms\Model\Template\FilterProvider $filterProvider,
array $data = []
) {
parent::__construct($context, $data);
$this->filterProvider = $filterProvider;
$this->_isScopePrivate = true;
}
public function getCmsFilterContent($content)
{
$filterManager = $this->filterProvider->getPageFilter()->filter($content);
return $filterManager;
}
}
app/code/Ravindra/Slider/view/frontend/templates/slider.phtml
<div class="slide_content">
<?php echo $block->getCmsFilterContent($_slider['content']); ?>
</div>
answered Mar 7, 2018 at 5:36
Ravindrasinh Zala
2,1573 gold badges17 silver badges49 bronze badges
Find an answer
<?php
$objectManager = \Magento\Framework\App\ObjectManager::getInstance();
$cmsPage = $objectManager->get('\Magento\Cms\Model\Page');
$content = $cmsPage->getContent();
$filterManager = $objectManager->get('Magento\Cms\Model\Template\FilterProvider')->getPageFilter()->filter($content);
echo $filterManager;
?>
default