Magento 2
Ich habe ein Beispiel-Bannerslider-Modul installiert, das von Magestore heruntergeladen wurde.
Wenn ich die bannerslider.phtml
CMS-Homepage aufrufe, wird auf der Homepage ein unzuverlässiger Fehler angezeigt.
{{block class="Magento\Bannerslider\Block\Slideshow" template="bannerslider.phtml"}}
Fehlermeldung ist We're sorry, an error has occurred while generating this email.
Ich habe auch die Blockklasse geändert, aber sie zeigt immer noch den gleichen Fehler. Können Sie mir bitte einen geeigneten Weg vorschlagen?
Wenn Sie weitere Codedetails benötigen, erwähnen Sie mich bitte im Kommentar. Ich stecke hier wirklich fest.
Nach uncoment SetEnv MAGE_MODE developer
in .htaccess
Datei Fehlermeldung ändern und mehr zeigt
Error filtering template: Invalid block type: Magento\Bannerslider\Block\Slideshow
Übrigens, der Admin-Bereich dieses Moduls funktioniert einwandfrei.
Klasse blockieren
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
quelle
quelle
Antworten:
Versuchen Sie den folgenden Code in cms page, wenn Sie mit in cms page phtml aufrufen möchten.
quelle
Wenn Sie in Magento eine Blockklasse in eine CMS-Seite einfügen möchten, können Sie den folgenden Code eingeben
Die Formel lautet:
Standardblock:
Dies entspricht dem Magento 1.X-Versionscode
quelle