Magento 2
Instalei o módulo Bannerslider de amostra baixado do Magestore.
Quando ligo bannerslider.phtml
para a Página inicial do CMS, ele mostra um erro não confiável na página inicial.
{{block class="Magento\Bannerslider\Block\Slideshow" template="bannerslider.phtml"}}
Mensagem de erro é We're sorry, an error has occurred while generating this email.
Também mudei a classe de bloco, ainda mostrando o mesmo erro. Você pode me sugerir uma maneira adequada?
Se você precisar de mais detalhes sobre o código, mencione-me no comentário. Eu estou realmente preso aqui.
Após descomentado SetEnv MAGE_MODE developer
no .htaccess
arquivo mensagem de erro sendo alterada e mostrando
Error filtering template: Invalid block type: Magento\Bannerslider\Block\Slideshow
A propósito, a seção admin deste módulo está funcionando bem.
Classe de bloqueio
namespace Magento\Bannerslider\Block;
use Magento\Framework\View\Element\Template;
use Magento\Framework\View\Element\Template\Context;
use Magento\Framework\Filesystem;
use Magento\Framework\App\Filesystem\DirectoryList;
class Slideshow extends Template
{
public function __construct(
Context $context,
\Magento\Bannerslider\Model\BannerFactory $bannerFactory,
\Magento\Framework\Filesystem $fileSystem,
\Magento\Framework\StoreManagerInterface $storeManager,
array $data = array()
) {
$this->_fileSystem = $fileSystem;
$this->_bannerFactory = $bannerFactory;
$this->_storeManager = $storeManager;
parent::__construct($context, $data);
}
public function _prepareLayout()
{
return parent::_prepareLayout();
}
public function getBaseJs($fileName){
return $this->_storeManager->getStore()->getBaseUrl(
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA
).'bannerslider/js/'.$fileName;
}
public function getBannerData(){
$banners = $this->_bannerFactory->create()
->getCollection()
->addFieldToFilter('status',1);
foreach ($banners as $banner){
$result['banners'][] = $banner->getData();
}
return $result;
}
public function getBannerImage($imageName) {
$mediaDirectory = $this->_storeManager->getStore()->getBaseUrl(
\Magento\Framework\UrlInterface::URL_TYPE_MEDIA
);
return $mediaDirectory.'bannerslider/images'.$imageName;
}
}
Module.xml
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
<module name="Magento_Bannerslider" setup_version="1.0.0"/>
</config>
magento2
static-block
magento2-dev-beta
Praful Rajput
fonte
fonte
Respostas:
Tente o código abaixo na página cms, se você quiser chamar phtml com na página cms.
fonte
No magento, se você deseja adicionar classe de bloco na página cms, pode tre abaixo do código
A fórmula é:
Bloco padrão:
Isso é igual ao código da versão do Magento 1.X
fonte