Magento 2: Özel modül düzeni xml dosyası ile sayfaların belirli bölümlerine statik bloklar ekleme


16

Magento 1.x'de xml mizanpaj dosyası kullanılarak statik bir blok eklemek mümkündür.

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

Ama magento 2'de bunu nasıl başarabiliriz?

Yanıtlar:


25

Sonunda çözümü buldum. Statik bloğu aşağıdaki yolu kullanarak çağırabilirsiniz.

<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>

Referans adını nasıl buldunuz?
Stevie G

@StevieG Ya onu bulun ya da varsayılan XML uygulamalarını okuyun, böylece her şeyin nasıl oluşturulduğunu bilirsiniz (uzun vadede yapmak çok yararlı).
Melvyn

8

Aşağıdaki adımları izleyerek yönetici panelinden kolayca yapılabilir.

  1. İçerik -> Widget'lar'a gidin
  2. Yeni Widget Ekle
  3. CMS Statik Bloğu olarak türü seçin
  4. Tasarım Paketi / Tema Seçin ve Devam Edin
  5. Set Widget Title, Storeve Sort orderde Storefront propertiessekmesine
  6. İçinde statik blok seçin Widget optionssekmesi
  7. Widget'ı kaydet
  8. Açık Add Layout Updatedüğmesine tıklayın
  9. Spesifikasyondaki bloğu görüntülemek için Display onaçılır menüden Seçenek'i seçin:Specific page

  10. Açılır menüden Sayfa'yı Pageseçin

  11. Açılır listeden Kapsayıcı'yı Containerseçin
  12. widget'ı kaydet

Yalnızca CMS sayfaları için kullanışlıdır. Özel modül xml'de de kullanabilir miyiz?
Praful Rajput

Sadece cms sayfa örneğini verdim, mümkün olan her modül veya sayfa için kullanabilirsiniz.
Ekranda

Bu mükemmel, temiz ve basit. Teşekkür ederim.
dawhoo

5

2 sütunlu sol sayfada statik bloğu çağırmak istiyorsanız,

burada quickblockstatik blok tanımlayıcı ile değiştirebilirsiniz .

<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>

Blok Üstü, kenar çubuğu ile 2 sütun-sol için iyi çalışıyor.


Merhaba Statik bloğu sadece kategori sayfa düzeni için çağırmak istiyorsak? Sidebar.additional xml statik blok çağırdı ama çalışmıyor. Nedeni ne olabilir?
jack

@Rakesh, <? Php echo $ this-> getLayout () -> createBlock ('Magento \ Cms \ Block \ Block') -> setBlockId ('identiefier_id') -> toHtml (); ?>
Başarımda kullandım. Phtml

2

Aşağıdaki kodda, magento panosunda oluşturulan CMS bloğundan "block_identifier" ı değiştirin ve layout.xml dosyasına ekleyin. İşe yarıyor.

<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>
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.