Magento2 - Como mostrar um conteúdo em bloco na página inicial


14

Como mostrar um conteúdo de bloco na página inicial?

Depois de instalar o magento2 sem dados de amostra, eu escolhi o tema 'Magento Luma' e adicionei o bloco 'Home Page Block' e copie o código da loja de amostras.

mas nada aparece na página inicial, como mostrar meu bloco de cms na página inicial como uma loja de amostra?

minha casa insira a descrição da imagem aqui

loja de amostras

insira a descrição da imagem aqui


Você quer dizer mostrar texto / conteúdo em bloco cms personalizado ou painel de administração criado em texto / conteúdo em bloco cms?
Bojjaiah

@magentotwo Crio um bloco cms personalizado Quero saber como mostrar este blcok na home page
lua

você já tentou a solução abaixo?
Bojjaiah

O conteúdo da página inicial nos dados de amostra é proveniente de widgets.

Respostas:


45

no painel de administração, vá para Conteúdo-> Páginas e edite a página inicial. Se você criou seu bloco estático no painel de administração, adicione o seguinte à guia Conteúdo

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

e se você criou um bloco personalizado usando um módulo, adicione o seguinte à guia de conteúdo da página inicial

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

salve as alterações e limpe o cache do magento e implante / exclua o conteúdo estático, agora atualize a página inicial.

Se isso não funcionar, me avise


Ele funciona como um encanto! Muito obrigado Chamal!
Lua

Existe algum link para saber mais sobre isso? classe de bloco magento e código de identificação de bloco para front-end?
Moon

1
Eu encontrei devdocs.magento.com/guides/v2.0/howdoi/frontend/... este é um bom guia para a compreensão arquitetura bloco magento 2
Chamal Chamikara

No módulo cms_index_index.xml, adicionei isso no conteúdo da Página inicial - <block class="Vendor\Module\Block\Index" name="modulename" template="module.phtml"></block> and It says Modelo de erro de filtragem: Arquivo de modelo inválido: 'Vendor_Module :: module.phtml' no módulo: 'Vendor_Module' nome do bloco: 'index_0'``
Slimshadddyyy

10

tente isso ou publique seu código, em seguida, sugeriremos onde você errou.

Bloquear arquivo

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

depois de criar o cache de liberação.

Eu espero que isso te ajude. Se você não estiver obtendo resultados, me avise.


Obrigado pela sua resposta! Vou tentar mais tarde e informar o resultado #
Moon

3

Na home page, você pode chamar o bloco estático como a maneira mencionada abaixo

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

Na página html, você pode chamar o bloco estático como a maneira mencionada abaixo.

<?php echo $this->getLayout()->createBlock('Magento\Cms\Block\Block')->setBlockId('block_identifier')->toHtml();?>
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.