Magento 2: aggiunta di blocchi statici a sezioni specifiche di pagine con file xml di layout di modulo personalizzato


16

In magento 1.x è possibile aggiungere un blocco statico usando il file di layout xml.

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

Ma in Magento 2 come possiamo raggiungerlo?

Risposte:


25

Finalmente ho ottenuto la soluzione. È possibile chiamare il blocco statico nel modo seguente.

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

Come hai scoperto il nome di riferimento?
Stevie G,

@StevieG O localizzalo o leggi le implementazioni XML predefinite in modo da sapere come tutto è costruito (molto utile da fare a lungo termine).
Melvyn,

8

Può essere fatto facilmente dal pannello di amministrazione seguendo i passaggi seguenti.

  1. Vai a Contenuto -> Widget
  2. Aggiungi nuovo widget
  3. Seleziona il tipo come blocco statico CMS
  4. Seleziona Pacchetto / tema di progettazione e continua
  5. Set Widget Title, Storee Sort orderin Storefront propertiesscheda
  6. Seleziona blocco statico nella Widget optionsscheda
  7. Salva il widget
  8. Fare clic sul Add Layout Updatepulsante
  9. Selezionare Opzione dal Display onmenu a discesa, ad es .: Specific pageper visualizzare il blocco su specifica

  10. Seleziona Pagina dal Pagemenu a discesa

  11. Seleziona Contenitore dal Containermenu a discesa
  12. salva il widget

È utile solo per le pagine CMS. Possiamo usarlo anche nel nostro modulo personalizzato xml?
Praful Rajput,

Ho fornito solo l'esempio della pagina cms, puoi usarlo per ogni possibile modulo o pagina. puoi avere un'idea vedendo l'elenco delle opzioni nel menu a discesa Visualizza su
Taral Patoliya,

Questo è eccellente, pulito e semplice. Grazie.
dawhoo,

5

Se vuoi chiamare static-block nella pagina 2columns-left, puoi semplicemente farlo usando,

qui sotto puoi cambiare quickblockcon il tuo identificatore di blocco statico.

<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 funziona bene per 2 colonne-sinistra con barra laterale.


Salve Se vogliamo chiamare il blocco statico solo per il layout di pagina della categoria, allora? ho chiamato blocco statico in xml con sidebar.additional ma non funziona. Quale potrebbe essere la ragione?
Jack

@Rakesh, <? Php echo $ this-> getLayout () -> createBlock ('Magento \ Cms \ Block \ Block') -> setBlockId ('identiefier_id') -> toHtml (); ?> Ho usato in success.phtml, non funziona
jafar pinjar

2

Nel codice seguente, modifica "block_identifier" dal blocco CMS creato sul dashboard di Magento e aggiungilo a layout.xml. Funziona.

<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>
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.