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

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

Chamal Chamikara
fonte
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.

Bojjaiah
fonte
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();?>
Naveenbos
fonte