Cursos Magento

Como estender um arquivo de Layout no Magento

,

Atualizado em 20 de junho de 2022

Frequentemente precisamos realizar alterações visuais em nossa loja. E isto é feito modificando arquivos de layout de um tema existente. Caso esteja desenvolvendo um novo tema, isto é feito modificando módulos e temas nativos do Magento. Ou seja, modificando as definições de Layout feitas por eles.

No Magento 2: O Curso trago uma seção inteira sobre o assunto layout XML. Se você está inscrito neste curso, confira a aula “Estendendo layout XML em um módulo ou tema”. São apenas 10 minutos com vários exemplos práticos.

Este também é o segundo artigo da nossa série sobre como Criar, estender e sobrescrever arquivos de Layout no Magento. 🤘

Porque estender um arquivo de layout? Qual arquivo estender? Quando estender?

Ao invés de sobrescrever um arquivo de layout inteiro, na maior parte dos casos, mudamos apenas o que desejamos. Desta forma não precisamos declarar instruções inteiras novamente. Além disso, garantimos compatibilidade com atualizações do Magento, tema ou atualizações de outros módulos.

Criando o arquivo extensor

Esteja você estendendo um arquivo de configuração de página (page configuration) ou um arquivo genérico de layout (generic layout), coloque seu arquivo de layout na seguinte pasta:

Se estiver fazendo isso em um tema: <pasta do seu tema>/<Namespace>_<Module>/[page_]layout/<arquivo com mesmo nome do original.xml>.

Se estiver fazendo isso em um módulo: <pasta do seu módulo>/view/frontend/[page_]layout/<arquivo com mesmo nome do original>.xml

Substitua <Namespace>_<Module> pelo nome do módulo original que está estendendo, ou Magento_Theme no caso de um arquivo do tema. Note também que a pasta /layout/ pode se chamar /page_layout/ caso esteja estendendo um page layout.

Exemplos

Vamos trabalhar com um exemplo simples, onde queremos estender o arquivo <module-customer>/view/frontend/layout/customer_account_create.xml. Este é o arquivo do módulo de clientes, responsável pela tela de <lojamagento.com>/customer/account/create, ou seja, a tela de registro de um novo cliente.

Estendendo dentro de um módulo

Criaremos o arquivo <pasta do módulo>/view/frontend/layout/customer_account_create.xml

Estendendo no tema

Criaremos <pasta do tema>/Magento_Customer/layout/customer_account_create.xml.

O que vamos modificar

Nós só precisamos reescrever aquilo que queremos modificar. O arquivo original era o <modulo customer>/view/frontend/layout/customer_account_create.xml e você pode ver o original aqui.

Para fins de exemplo, vamos mudar o título da página, declarado em <head><title> no arquivo original.

<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      layout="1column"
      xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <head>
        <title>Create a New Account and Start learning Magento! :)</title>
    </head>
</page>

Limpe o cache de layout e full_page e você deverá ver um resultado parecido com este ao criar uma nova conta.

Exemplo da tela de criação de conta após nossa atualização via layout xml

No próximo artigo da série, veremos . Veja também (artigo anterior).

Últimos posts por Ricardo Martins (exibir todos)
Comentários

Deixe seu comentário

[fbcomments url="https://www.magenteiro.com/blog/magento-2/estender-arquivo-layout-xml/"]