Magento 2
J'ai installé un exemple de module Bannerslider téléchargé depuis Magestore.
Lorsque j'appelle bannerslider.phtml
sur la page d'accueil de CMS, cela montre une erreur non fiable sur la page d'accueil.
{{block class="Magento\Bannerslider\Block\Slideshow" template="bannerslider.phtml"}}
Le message d'erreur est We're sorry, an error has occurred while generating this email.
J'ai également changé la classe de bloc, toujours avec la même erreur. Pouvez-vous s'il vous plaît me suggérer une bonne façon?
Si vous avez besoin de plus de détails sur le code, veuillez me mentionner en commentaire. Je suis vraiment coincé ici.
Après uncoment SetEnv MAGE_MODE developer
dans .htaccess
le message d'erreur de fichier en cours de modification et d'affichage
Error filtering template: Invalid block type: Magento\Bannerslider\Block\Slideshow
Par ailleurs, la section admin de ce module fonctionne bien.
Classe de bloc
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
la source
la source
Réponses:
Essayez ci-dessous le code dans la page cms, si vous voulez appeler phtml avec dans la page cms.
la source
Dans magento, si vous souhaitez ajouter une classe de bloc dans la page cms, vous pouvez passer sous le code
La formule est:
Bloc par défaut:
Ceci est égal au code de version de Magento 1.X
la source