কোনও সিএমএস পৃষ্ঠার মধ্যে কীভাবে কোনও পিএইচটিএমএল ফাইল কল করবেন?


16

ম্যাজেন্টো 2

আমি ম্যাজস্টোর থেকে ডাউনলোড নমুনা ব্যানারস্লাইডার মডিউল ইনস্টল করেছি।

আমি যখন bannerslider.phtmlসিএমএস হোম পৃষ্ঠাতে কল করি তখন এটি হোম পৃষ্ঠায় অবিশ্বাস্য ত্রুটি দেখাচ্ছে।

{{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 ফাইল থেকে সেটEnv MAGE_MODE বিকাশকারীকে আগত করতে হবে।
তারাল পাটোলিয়া

ধন্যবাদ তারাল। আমি এটা করেছি. এখন ত্রুটি বার্তা পরিবর্তন করা হয়েছে। আমি এখন আমার প্রশ্ন সম্পাদনা করেছি।
প্রফুল রাজপুত

দয়া করে আমাকে আপনার ব্লক ক্লাস এবং মডিউল.এক্সএমএল কোডটি দেখান।
অমিত বেরা

আমি পোস্টে ব্লক ক্লাস এবং মডিউল.এক্সএমএল কোড যুক্ত করেছি।
প্রফুল রাজপুত

@ তারালপাটোলিয়া আপনার পরামর্শের জন্য আপনাকে ধন্যবাদ ... এটি সত্যিই আমার পক্ষে সাহায্য করেছে!
DRAJI

উত্তর:


35

সিমস পৃষ্ঠায় কোডের নীচে চেষ্টা করুন, আপনি যদি সিমিএস পৃষ্ঠায় পিটিএইচটিএমএল করতে চান।

{{block class="Magento\Bannerslider\Block\Slideshow" template="Magento_Bannerslider::bannerslider.phtml"}} 

21

ম্যাজেন্টোতে, আপনি যদি সিমি পৃষ্ঠাতে ব্লক ক্লাস যুক্ত করতে চান তবে আপনি কোডের নীচে ট্রে করতে পারেন

{{block class="Magento\Bannerslider\Block\Slideshow" template="Magento_Bannerslider::bannerslider.phtml"}} 

সূত্রটি হ'ল:

{{block class="[BlockClassFullName]" template="[VendorName]_[ModuleName]::[YourTemplateFileLocation].phtml"}} 

ডিফল্ট ব্লক:

{{block class="Magento\Framework\View\Element\Template" template="[VendorName]_[ModuleName]::[YourTemplateFileLocation].phtml"}} 

এটি ম্যাজেন্টো 1.X সংস্করণ কোডের সমান

{{ block type="core/template" template="YourtemplateFileLocation.phtml"}}

হাই @ আমিট, আমরা কি এখানে ক্যাশেবল = "মিথ্যা" ব্যবহার করতে পারি? যখন সেমি ব্যবহৃত হয়
জাফর পিনজার

ব্যবহার করতে পারে তবে এটি আপনাকে ক্যাশেবল করতে সক্ষম করে না
অমিত বেরা

হ্যাঁ আমার
সেটির দরকার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.