Blog do MX Cursos

Qual arquivo controla o quê no Magento? Arquivos de Layout XML.

Qual arquivo controla o quê no Magento? Arquivos de Layout XML.

O Magento E-Commerce é a maior e mais popular plataforma de E-Commerce do planeta.

Lojas virtuais de diversos tamanhos usam o Magento para gerir as vendas de seus produtos.

Neste artigo, mostrarei como encontrar o arquivo de layout XML do Magento que controla um bloco de informação específico em uma página e também como funcionam e como são organizadas as configurações dentro deles.

Continue lendo.

É comum que usuários se confundam ao analisar a estrutura de arquivos dentro do Layout do Magento, como a estrutura XML, por exemplo.

O Magento possui muitos XML’s com funções específicas, mas neste artigo falarei apenas dos temas.

Além disso, este conteúdo será como uma aula e minha intenção não será mostrar onde está o que, mas sim a ajudá-lo a seguir o caminho correto com total autonomia e eficiência.

Relembrando as boas práticas do Magento

Não é demasiado lembrar que não devemos alterar os arquivos originais do Magento. Isso pode tornar sua instalação incompatível com atualizações ou podemos perder todas as alterações em uma atualização qualquer. Por isso, sempre crie um tema personalizado, por exemplo: se vai fazer um tema personalizado para o “rwd/default”, faça isso no tema “rwd/meutema”. Assim você manterá os arquivos originais e só haverá arquivos personalizados pra se preocupar, o que vai reduzir muito o número de arquivos a trabalhar.

Um arquivo de layout para cada módulo

A primeira grande razão de tanta confusão com os arquivos de layout vem do fato de que tais arquivos não representam as páginas da loja. Na verdade, cada módulo instalado dentro do Magento que tenha alguma apresentação no frontend terá um arquivo de layout. Mesmo assim, perceberemos que no Magento toda regra tem sua exceção.

Cada arquivo de layout representa um módulo instalado dentro do Magento. Isso significa que não podemos criar nosso próprio arquivo de layout, a não ser que seja o local.xml, que serve como um arquivo coringa para personalização de um tema, mas falaremos dele em outra ocasião.

Voltando ao nosso assunto, vejamos alguns exemplos de como funciona um arquivo de layout desta poderosa plataforma de E-Commerce.

Onde modificar o carrinho de compras?

Tudo referente ao carrinho está no módulo checkout, logo, devemos trabalhar com o arquivo checkout.xml. Dentro dele teremos as páginas de carrinho e de checkout sendo declaradas, exemplos:

  • <checkout_cart_index translate=”label”> declara a página do carrinho,
  • <checkout_onepage_index translate=”label”> declara a página de checkout,
  • <checkout_onepage_success translate=”label”> declara a página de sucesso.

Então, se quero modificar alguma coisa dentro da página do carrinho, o primeiro lugar a se pensar é no checkout.xml dentro do controlador checkout_cart_index (dentro do layout, o nó que controla páginas é normalmente chamado de controlador). Assim sendo, posso mudar o caminho dos arquivos de template, adicionar ou remover blocos de conteúdo e alterar qualquer coisa nessa página referente ao checkout.

Além dos controladores que são declarados dentro do arquivo de layout, também teremos alguns outros. É o caso do <default>, que representa todas as páginas da loja. Qualquer alteração feita dentro desse controlador afetará toda a loja. Dessa maneira, todas as configurações referentes ao carrinho e ao checkout estarão em checkout.xml, logo, se quisesse alterar algo referente ao catálogo de produtos eu estaria trabalhando em catalog.xml, mesmo que fosse na página do carrinho

Leia também  Opencart 2.2.X - Como exibir preço de um item como GRÁTIS ao invés de R$ 0,00

Em checkout.xml, dentro do <default>, veremos o que o módulo checkout insere em todas as páginas.  É muito interessante abrir esse arquivo pra acompanhar o que vou dizer, mas provavelmente você já deve estar fazendo isso.

Dentro do controlador <default>, veremos três nós <reference name=”nome_de_um_bloco”> que é um tipo de nó que solicita ao Magento um bloco de layout ou de conteúdo já declarado em outro arquivo de layout. O atributo “name” se refere ao atributo name do bloco em questão. Aqui temos <reference name=”top.links”> que é um bloco de menu criado no arquivo page.xml onde encontraremos um <block> com atributo name=”top.links”. No caso, aqui é declarado um novo bloco do tipo “checkout/links” e acrescentado dois links através do nó action.

Deletando qualquer action irá excluir esse link da loja, excluir o bloco vai excluir toda essa alteração. Poderíamos incluir mais links, mas para esta tarefa é preciso conhecer o módulo e aqui vou me ater a falar sobre os arquivos de layout do  Magento.

Mas como saber qual arquivo alterar se não é tão claro?

Magento_responsiveNem sempre é fácil dizer qual arquivo de layout controla o quê, então precisamos utilizar o um recurso no Magento que mostra qual arquivo renderiza determinado item no frontend. Isso nos permite localizar o arquivo de layout em 90% das vezes.

  1. No admin do Magento vá em: Sistema > Configuração e no final da barra lateral clique em Desenvolvedor,
  2. Na visão de loja (o dropdown localizado na esquerda) escolha um website ou visão de loja que desejar, a tela vai atualizar,
  3. Abra a aba Debugar,
  4. Altere “Exibir Caminho das Telas” para sim e salve, e
  5. Atualize a frente de loja a página que deseja analisar.

Se estiver tudo certo aparecerão várias caixas tracejadas em vermelho circundando cada bloco e cada uma terá um título que indica qual arquivo de template (PHTML) é utilizado. Verificando esse caminho, veremos a pasta template seguida da pasta do módulo e assim saberemos qual é o arquivo de layout que o controla. Por exemplo, se o caminho é template/catalog/product/view.phtml, o arquivo de layout é o catalog.xml.

Mas essa técnica não funciona 100% das vezes. Em alguns casos, não é utilizado nenhum arquivo e também há casos desse recurso não funcionar em alguns temas.

Então é recomendado conhecer bem a primeira técnica. Dessa forma, garantimos encontrar o que procuramos em 100% das vezes.

Finalizando

No final das contas, a melhor forma de não se perder configurando o Magento é conhecer o Magento e não se preocupar se se perder no começo, isso é perfeitamente normal

O Magento é um sistema de código aberto de loja virtual muito robusto e modular, em compensação também é muito complexo para iniciantes.

O importante é não desanimar e entender como cada parte desse incrível sistema funciona.

Um abraço e até a próxima.