Magento 2
MagestoreからダウンロードしたサンプルBannersliderモジュールをインストールしました。
bannerslider.phtml
CMSホームページを呼び出すと、ホームページに信頼できないエラーが表示されます。
{{block class="Magento\Bannerslider\Block\Slideshow" template="bannerslider.phtml"}}
エラーメッセージは We're sorry, an error has occurred while generating this email.
ブロッククラスも変更しましたが、それでも同じエラーが表示されます。適切な方法を提案してもらえますか?
さらにコードの詳細が必要な場合は、コメントで私に言及してください。私は本当にここで立ち往生しています。
uncomentした後SetEnv MAGE_MODE developer
で.htaccess
、ファイルのエラーメッセージが変更されてと示します
Error filtering template: Invalid block type: Magento\Bannerslider\Block\Slideshow
ところで、このモジュールの管理セクションは正常に動作しています。
ブロッククラス
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>
3
.htaccessファイルからSetEnv MAGE_MODE開発者のコメントを外してエラーを生成する必要があります。
—
タラルPatoliya
ありがとう、タラル。やった エラーメッセージが変更されました。質問を編集しました。
—
Prafulラージプート
ブロッククラスとmodule.xmlコードを見せてください。
—
アミットベラ
投稿するブロッククラスとmodule.xmlコードを追加しました。
—
プラーフルラージプート
@TaralPatoliyaご提案ありがとうございます...本当に助かりました!
—
-DRAJI