Magento 2
Tôi đã cài đặt mô-đun Bannerslider mẫu được tải xuống từ Magestore.
Khi tôi gọi bannerslider.phtml
vào Trang chủ CMS, nó hiển thị lỗi không đáng tin cậy trên trang chủ.
{{block class="Magento\Bannerslider\Block\Slideshow" template="bannerslider.phtml"}}
Thông báo lỗi là We're sorry, an error has occurred while generating this email.
Tôi cũng đã thay đổi lớp khối, nhưng nó vẫn hiển thị lỗi tương tự. Bạn có thể vui lòng gợi ý cho tôi một cách thích hợp?
Nếu bạn cần thêm chi tiết mã, xin vui lòng đề cập đến tôi trong bình luận. Tôi thực sự bị mắc kẹt ở đây.
Sau uncoment SetEnv MAGE_MODE developer
trong .htaccess
thông báo lỗi tập tin bị thay đổi và hiển thị
Error filtering template: Invalid block type: Magento\Bannerslider\Block\Slideshow
Bằng cách quản trị phần của mô-đun này đang hoạt động tốt.
Lớp khối
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;
}
}
Mô-đun
<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>