Magento 2: Agregar bloques estáticos a una sección específica de páginas con un archivo XML de diseño de módulo personalizado


16

En magento 1.x es posible agregar un bloque estático usando el archivo de diseño xml.

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

Pero, en magento 2, ¿cómo podemos lograrlo?

Respuestas:


25

Finalmente obtuve la solución. Puede llamar al bloque estático de la siguiente manera.

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

¿Cómo descubriste el nombre de referencia?
Stevie G

De cualquier @StevieG localizarlo o leer las implementaciones XML por defecto para que sepa cómo todo se construye (muy útil para hacer por largo plazo).
Melvyn el

8

Se puede hacer fácilmente desde el panel de administración siguiendo los pasos a continuación.

  1. Vaya a Contenido -> Widgets
  2. Añadir nuevo widget
  3. Seleccione el tipo como bloque estático CMS
  4. Seleccione paquete de diseño / tema y continúe
  5. Conjunto Widget Title, Storey Sort orderen la Storefront propertiespestaña
  6. Seleccione bloque estático en la Widget optionspestaña
  7. Guarda el widget
  8. Haga clic en el Add Layout Updatebotón
  9. Seleccione la opción del Display onmenú desplegable, por ejemplo: Specific pagepara mostrar el bloque en especifi

  10. Seleccionar página del Pagemenú desplegable

  11. Seleccionar contenedor del Containermenú desplegable
  12. guardar el widget

Es útil solo para páginas CMS. ¿Podemos usarlo en nuestro módulo personalizado xml también?
Praput Rajput

Solo proporcioné el ejemplo de la página cms, puede usarlo para cada módulo o página posible. puede hacerse una idea al ver la lista de la opción en la pantalla desplegable
Taral Patoliya

Esto es excelente, limpio y simple. Gracias.
dawhoo

5

Si desea llamar al bloque estático en la página 2columnas a la izquierda, simplemente puede hacerlo usando,

a continuación puede cambiar quickblockcon su identificador de bloque estático.

<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 funciona bien para 2 columnas a la izquierda con barra lateral.


Hola Si queremos llamar al bloque estático solo para el diseño de página de categoría, ¿entonces? Llamé al bloque estático en xml con sidebar.additional pero no funciona. ¿Cuál podría ser la razón?
Jack

@Rakesh, <? Php echo $ this-> getLayout () -> createBlock ('Magento \ Cms \ Block \ Block') -> setBlockId ('identiefier_id') -> toHtml (); ?>
Usé

2

En el siguiente código, cambie el "identificador de bloque" del bloque CMS creado en el panel de Magento y agréguelo a layout.xml. Funciona.

<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>
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.