Magento 2: Menambahkan blok statis ke bagian halaman tertentu dengan file xml tata letak modul khusus

16

Di magento 1.x dimungkinkan untuk menambahkan blok statis menggunakan file tata letak xml.

<reference name="root">
        <block type="cms/block" name="name">
            <action method="setBlockId"><block_id>static-block-id</block_id></action>
        </block>
</reference>

Tapi, di Magento 2 bagaimana kita bisa mencapainya?

Praful Rajput
sumber

Jawaban:

25

Akhirnya saya mendapat solusinya. Anda dapat memanggil blok statis menggunakan cara berikut.

<referenceContainer name="footer">
    <block class="Magento\Store\Block\Switcher" name="store_switcher" as="store_switcher" after="footer_links" template="switch/stores.phtml"/>

     <block class="Magento\Cms\Block\Block" name="test">
        <arguments>
            <argument name="block_id" xsi:type="string">promo</argument>
        </arguments>
    </block>
</referenceContainer>
Praful Rajput
sumber
Bagaimana Anda mengetahui nama referensi?
Stevie G
@StevieG Baik temukan atau baca implementasi XML default sehingga Anda tahu bagaimana semuanya dibangun (sangat berguna untuk dilakukan untuk jangka panjang).
Melvyn
8

Ini dapat dilakukan dengan mudah dari panel admin dengan mengikuti langkah-langkah di bawah ini.

  1. Buka Konten -> Widget
  2. Tambahkan Widget Baru
  3. Pilih jenis sebagai Blok Statis CMS
  4. Pilih Paket Desain / Tema Dan Lanjutkan
  5. Atur Widget Title, Storedan Sort orderdi Storefront propertiestab
  6. Pilih blok statis dari pada Widget optionstab
  7. Simpan widget
  8. Klik Add Layout Updatetombol Hidup
  9. Pilih Opsi dari Display ondropdown misalnya: Specific pageuntuk menampilkan blok pada spesifikasi

  10. Pilih Halaman dari Pagedropdown

  11. Pilih Kontainer dari Containerdropdown
  12. simpan widget
Taral Patoliya
sumber
Ini berguna hanya untuk halaman CMS. Bisakah kita menggunakannya dalam modul khusus kita xml juga?
Praful Rajput
Saya telah memberikan contoh halaman cms saja, Anda dapat menggunakannya untuk setiap modul atau halaman yang memungkinkan. Anda bisa mendapatkan ide dengan melihat daftar opsi di Display pada dropdown
Taral Patoliya
Ini luar biasa, bersih dan sederhana. Terima kasih.
dawhoo
5

Jika Anda ingin memanggil blok statis di halaman kiri 2 kolom, Anda cukup melakukannya menggunakan,

di sini di bawah ini Anda dapat mengubah quickblockdengan pengidentifikasi blok statis Anda.

<referenceContainer name="sidebar.main">
            <block class="Magento\Cms\Block\Block" name="quick-block">
                <arguments>
                    <argument name="block_id" xsi:type="string">quickblock</argument>
                </arguments>
            </block>
</referenceContainer>

Above Block berfungsi dengan baik untuk 2 kolom-kiri dengan sidebar.

Rakesh Jesadiya
sumber
Hai Jika kita ingin memanggil blok statis hanya untuk tata letak halaman kategori? saya memang memanggil blok statis di xml dengan sidebar.additional tetapi tidak berfungsi. Apa yang bisa menjadi alasannya?
jack
@Rakesh, <? Php echo $ this-> getLayout () -> createBlock ('Magento \ Cms \ Block \ Block') -> setBlockId ('identiefier_id') -> toHtml (); ?> Saya gunakan di success.phtml, ini tidak berfungsi
jafar pinjar
2

Dalam kode berikut, ubah "block_identifier" dari blok CMS yang dibuat di dashboard magento dan tambahkan ke layout.xml. Berhasil.

<referenceContainer name="footer">
       <block class="Magento\Cms\Block\Block" name="block_identifier">
            <arguments>
                <argument name="block_id" xsi:type="string">block_identifier</argument>
            </arguments>
        </block>
    </referenceContainer>
Bhanu Gupta
sumber