Como estender um arquivo de Layout no Magento
Desenvolvimento, Magento 2
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.
No próximo artigo da série, veremos como sobrescrever um arquivo de layout por inteiro. Veja também como criar um novo arquivo XML (artigo anterior).
- PagSeguro (PagBank) para Magento 1 recebe a Nova Geração - 9 de abril de 2024
- Recorrência no WooCommerce Sem Plugins Pagos - 28 de janeiro de 2024
- Chargeback. O que é, e como se livrar deles. - 19 de dezembro de 2023
Deixe seu comentário
[fbcomments url="https://www.magenteiro.com/blog/magento-2/estender-arquivo-layout-xml/"]