Magento 2
Ho installato il modulo Bannerslider di esempio scaricato da Magestore.
Quando chiamo bannerslider.phtml
nella Home Page di CMS, mostra un errore inaffidabile sulla home page.
{{block class="Magento\Bannerslider\Block\Slideshow" template="bannerslider.phtml"}}
Il messaggio di errore è We're sorry, an error has occurred while generating this email.
Ho cambiato anche la classe di blocco, mostrando comunque lo stesso errore. Potete per favore suggerirmi un modo corretto?
Se hai bisogno di ulteriori dettagli sul codice, ti prego di menzionarmi nel commento. Sono davvero bloccato qui.
Dopo insolenti SetEnv MAGE_MODE developer
nel .htaccess
messaggio di errore del file che viene modificato e visualizzato
Error filtering template: Invalid block type: Magento\Bannerslider\Block\Slideshow
A proposito, la sezione admin di questo modulo funziona bene.
Classe di blocco
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>