Magento2 - Cómo mostrar un contenido bloqueado en la página de inicio

14

¿Cómo mostrar un contenido bloqueado en la página de inicio?

Después de instalar magento2 sin datos de muestra, elegí el tema 'Magento Luma' y agregué el bloque 'Bloque de página de inicio' y copié el código de la tienda de muestra.

pero no aparece nada en la página de inicio, ¿cómo mostrar mi bloque de cms en la página de inicio como tienda de muestras?

mi hogar ingrese la descripción de la imagen aquí

tienda de muestra

ingrese la descripción de la imagen aquí

Luna
fuente
¿Te refieres a mostrar texto / contenido de bloque de cms personalizado o texto / contenido de bloque de cms creado por el panel de administración?
Bojjaiah
@magentotwo Creo un bloque de cms personalizado Quiero saber cómo mostrar este blcok en la página de inicio
Luna
¿Has probado debajo de la solución?
Bojjaiah
El contenido de la página de inicio en los datos de muestra proviene de widgets.

Respuestas:

45

en el panel de administración, vaya a Contenido-> Páginas y edite la página de inicio y si creó su bloque estático desde el panel de administración agregue lo siguiente a la pestaña Contenido

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

y si creó un bloque personalizado utilizando un módulo, agregue lo siguiente a la pestaña de contenido de la página de inicio

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

luego guarde los cambios y vacíe la caché de magento e implemente / elimine contenido estático ahora actualice la página de inicio.

Si esto no funcionó, hágamelo saber

Chamal Chamikara
fuente
¡Funciona a las mil maravillas! Muchas gracias Chamal!
Luna
¿Hay algún enlace en el que pueda obtener más información al respecto? ¿Clase de bloque magento y código de identificación de bloque para front-end?
Luna
1
Encontré devdocs.magento.com/guides/v2.0/howdoi/frontend/… esta es una buena guía para comprender la arquitectura de bloques de magento 2
Chamal Chamikara
Desde mi módulo cms_index_index.xml, agregué esto en el contenido de la página de inicio - <block class="Vendor\Module\Block\Index" name="modulename" template="module.phtml"></block> and It says Error al filtrar la plantilla: Archivo de plantilla no válido: 'Vendor_Module :: module.phtml' en el módulo: 'Vendor_Module' nombre del bloque: 'index_0' ''
Slimshadddyyy
10

intente esto o publique su código y le sugeriremos dónde se equivocó.

Bloque de archivo

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

view / layout / cms_index_index.xml

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

view / templates / html / cms.phtml

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

después de crear caché de descarga.

Espero que esto ayude. Si no obtiene resultados, avíseme.

Bojjaiah
fuente
¡Gracias por su respuesta! Voy a tratar más adelante y le hará saber el resultado
Luna
3

En la página de inicio puede llamar al bloque estático como se menciona a continuación.

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

En la página html puede llamar al bloque estático como se menciona a continuación.

<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
Naveenbos
fuente