Editando o Rodapé

Se você deseja trabalhar com Magento, ou mesmo realizar pequenas modificações no visual do seu template, entender o funcionamento do rodapé da página é fundamental.

Inclusive já fiquei sabendo que algumas empresas usam o rodapé do Magento como teste de avaliação dos candidatos, solicitando que estes realizem alterações na página.

Pode parecer algo simples se observamos apenas o resultado final, mas eu garanto pra você, entender o funcionamento deste pequeno trecho de código vai ampliar em muito sua visão do sistema como um todo.

Os arquivos

O rodapé da página também conhecido por “footer“, faz parte da construção da página, por isso devemos olhar o arquivo page.xml que fica em:

app > design > frontend > base > default > layout > page.xml

Dentro deste arquivo você encontra o seguinte trecho de código:


Esse bloco corresponde a criação da estrutura do rodapé. E define através do name “footer” que outros arquivos podem usar este bloco como referência para inserir conteúdo dinâmicamente. Todo conteúdo será renderizado pelo arquivo footer.phtml como informado na parâmetro template.

Página dentro de página

Se você já estuda/trabalha com php, provavelmente conhece os comandos include e require. Que são códigos usados dentro das páginas para carregar outras páginas.

No Magento esse processo é feito através do XML, usando os blocos. Como podemos ver na criação do page.xml, dentro da estrutura footer.


Veja que dentro do bloco name=”footer” são informados outros dois blocos do tipo “page“. Então assim que a página footer.phtml for carregada, junto com ela, no corpo do conteúdo serão carregados também as páginas stores.phtml e links.phtml.

Como inserir conteúdo

Logo no início do arquivo footer.phtml (que não é grande) temos uma linha muito importante:

getChildHtml() ?>

Esse getChildHtml vai recuperar todas as referências do xml para o bloco “footer” e imprimir na página. Um ótimo exemplo é mostrado no arquivo cms.xml:

    
        footer_links
    

Neste exemplo é criado um bloco do tipo “cms/block” e informado que deve ser carregado antes do bloco “footer_links“.

Mas o mais importante neste código é a declaração da action com método “setBlockId“. Isso informa ao sistema que ele deve procurar este conteúdo no banco de dados, ou seja, na criação de blocos estáticos do CMS em backend. Então se você for em:

CMS > Blocos Estáticos [Links de Rodapé]

Você encontra um bloco com identificador “footer_links“, que é exatamente o mesmo “footer_links” indicado no xml em “block_id“.

Então você já sabe, todo conteúdo inserido aqui vai aparecer no rodapé da sua página.

Ajudar a Magento Inc?

Ainda dentro do arquivo footer.phtml temos a linha:

__('Help Us to Keep Magento Healthy') ?> - __('Report All Bugs') ?> __('(ver. %s)', Mage::getVersion()) ?>

Essa linha que o Magento insere no código não nos ajuda em nada. Muito pelo contrário, não é recomendado informar a versão do sistema assim publicamente, pois se você estiver com uma versão vulnerável pessoas mal intencionadas podem se aproveitar dessa informação.

E se você encontrar um bug no sistema, pode entrar em contato direto pelo site da Magento em www.magentocommerce.com/bug-tracking, mas não existe a necessidade de manter esse link no seu site.

Apague esse trecho de código sem medo.

Configuração do backend

No final do arquivo footer.phtml temos uma linha simples:

getCopyright() ?>

Quando criamos o arquivo page.xml com a referência “footer“, usamos um bloco do tipo “page/html_footer“. O que significa que uma classe chamada Footer será inicializada e junto com ela algumas variáveis, uma destas variáveis é a “copyright” que é configurada no backend do sistema.

Caso queira dar uma olhada na classe:

app > code > core > Mage > Page > Block > Html > Footer.php

E para configurar a variável acesse:

Sistema > Configuração > Geral > Visual [Rodapé]

No campo “Direitos Autorais” você informa o valor da variável “copyright” usada no footer.phtml.

Outros scripts

Ainda no backend, nas configurações do rodapé temos o campo “Outros Códigos HTML“.

Muita gente não usa esse campo, talvez porque nem saiba que exista. Mas é possível inserir outros scripts de forma dinâmica no seu rodapé usando este campo.

Você pode por exemplo inserir algum javascript de monitoramento, ou aquelas caixas da fã do facebook ou google+1.

E resumindo é isso. Muita informação para um arquivo tão pequeno não acha!?

Aproveite para ler os artigos Manipulando o TopLinks e Entendendo o block do XML – e descubra como o Magento manipula o template usando XML.

Ficou com dúvidas? Normal, use o Fórum da Escola Magento.

Sucesso!