Magento 2
Saya telah menginstal sampel modul Bannerslider yang diunduh dari Magestore.
Ketika saya menelepon bannerslider.phtml
ke Halaman Utama CMS, itu menunjukkan kesalahan tidak dapat diandalkan di halaman rumah.
{{block class="Magento\Bannerslider\Block\Slideshow" template="bannerslider.phtml"}}
Pesan kesalahan adalah We're sorry, an error has occurred while generating this email.
Saya mengubah kelas blok juga, masih menunjukkan kesalahan yang sama. Bisakah Anda menyarankan saya cara yang tepat?
Jika Anda membutuhkan detail kode lebih lanjut, Tolong sebutkan saya dalam komentar. Saya benar-benar terjebak di sini.
Setelah uncoment SetEnv MAGE_MODE developer
dalam .htaccess
pesan kesalahan file diubah dan ditampilkan
Error filtering template: Invalid block type: Magento\Bannerslider\Block\Slideshow
Ngomong-ngomong, admin bagian dari modul ini berfungsi dengan baik.
Blokir kelas
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
sumber
sumber
Jawaban:
Coba kode di bawah ini di halaman cms, Jika Anda ingin memanggil phtml dengan halaman cms.
sumber
Di magento, jika Anda ingin menambahkan kelas blok di halaman cms, maka Anda dapat menggunakan kode di bawah ini
Formula adalah:
Blok default:
Ini sama dengan kode versi Magento 1.X
sumber