Magento2 - Ana sayfada bir blok içeriği nasıl gösterilir?


14

Bir blok içeriği ana sayfada nasıl gösterilir?

Magento2'yi örnek verileri olmadan yükledikten sonra, 'Magento Luma' temasını seçtim ve 'Ana Sayfa Bloğu' bloğunu ekledim ve kodu örnek deposundan kopyaladım.

ancak ana sayfada hiçbir şey görünmüyor, cms bloğumu örnek mağaza gibi ana sayfada nasıl gösterebilirim?

benim evim resim açıklamasını buraya girin

örnek mağaza

resim açıklamasını buraya girin


Özel cms blok metin / içerik veya yönetici paneli oluşturulmuş cms blok metin / içerik gösteriliyor mu?
Bojjaiah

@magentotwo Özel bir cms bloğu oluşturuyorum Ana sayfada bu blcokun nasıl gösterileceğini bilmek istiyorum
Moon

Aşağıdaki çözümü denediniz mi?
Bojjaiah

Örnek verilerdeki ana sayfa içeriği widget'lardan geliyor.

Yanıtlar:


45

yönetici panelinde İçerik-> Sayfalar'a gidin ve ana sayfayı düzenleyin ve statik bloğunuzu yönetici panelinden oluşturduysanız, İçerik sekmesine aşağıdakileri ekleyin

{{block class="Magento\Cms\Block\Block" block_id="your_block_identifier"}}

ve bir modül kullanarak özel bir blok oluşturduysanız, ana sayfa içeriği sekmesine aşağıdakini ekleyin

{{block class="Vendor\ModuleName\Block\BlockName" template="Vendor_ModuleName::yourcustomblock.phtml"}} 

daha sonra değişiklikleri kaydedin ve macenta önbelleğini yıkayın ve statik içeriği dağıtın / silin şimdi ana sayfayı yenileyin.

Bu işe yaramadıysa bana bildirin


Mucizevi şekilde çalışır! Çok teşekkürler Chamal!
Ay

Bununla ilgili daha fazla bilgi edinebileceğim herhangi bir bağlantı var mı? magento blok sınıfı ve ön uç için blok kimlik kodu?
Ay

1
Devdocs.magento.com/guides/v2.0/howdoi/frontend/… buldum bu magento 2 blok mimarisini anlamak için iyi bir rehber
Chamal Chamikara

Benim modülü en düşük cms_index_index.xml, ben Ana Sayfa içeriğinde bu katma - <block class="Vendor\Module\Block\Index" name="modulename" template="module.phtml"></block> and It says Hata filtreleme şablonu: Geçersiz şablon dosyasını: 'Vendor_Module :: module.phtml' in modülü: 'Vendor_Module' bloğun adını: 'index_0'``
Slimshadddyyy

10

bunu deneyin ya da başka bir kodunuzu gönderin o zaman nereye yanlış gittiğini size önerecektir.

Dosyayı engelle

<?php
namespace Learning\SmartSearch\Block;

class SmartSearch extends \Magento\Framework\View\Element\Template
{
    public function getTitle()
    {
        return "Smart Search";
    }
}

etc / module.xml

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/Module/etc/module.xsd">
    <module name="Learning_SmartSearch" setup_version="1.0.0">
    </module>
</config>

/ Düzeni / cms_index_index.xml görüntülemek

<?xml version="1.0"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="1column" xsi:noNamespaceSchemaLocation="../../../../../../../lib/internal/Magento/Framework/View/Layout/etc/page_configuration.xsd">
    <body>
        <referenceContainer name="content">
            <block class="Learning\SmartSearch\Block\SmartSearch" template="Learning_SmartSearch::html/cms.phtml"/>
        </referenceContainer>
    </body>
</page>

/ Templates / html / cms.phtml görüntülemek

<h1><?php echo $block->getTitle(); ?></h1>

gömme önbellek oluşturduktan sonra.

Umarım bu sana yardımcı olmuştur. Sonuç alamıyorsanız bana bildirin.


Cevabınız için teşekkür ederim! Daha sonra deneyeceğim ve sonucu bildireceğim
Moon

3

Ana sayfada, statik bloğu aşağıda belirtilen şekilde çağırabilirsiniz

{{block class="Magento\Cms\Block\Block" block_id="your_block_identifier"}}

Html sayfasında statik bloğu aşağıda belirtilen şekilde çağırabilirsiniz.

<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.