Bloco Estático em Todo Lugar

Várias formas de instanciar um bloco estático

Aqui mesmo no blog já vimos como usar blocos estáticos no Magento. Mas apesar da liberdade de uso destes blocos, uma limitação é não poder usar bloco estático na tela de descrição dos produtos.

Mas nada que algumas poucas linhas de código não resolvam. Então vamos ver como podemos chamar estes blocos estáticos.

Um bloco estático como falado no post anterior, pode ser usado para exibir qualquer trecho de conteúdo do seu site, seja um banner promocional, opções de pagamentos, links, informações de frete ou parcelamentos, enfim, não importa o que você vai exibir, o procedimento é o mesmo depois que você criar o seu bloco.

Então só recapitulando as formas automáticas que o Magento oferece para exibir os tais blocos.

Se você for inserir dentro de uma página CMS, no campo “conteúdo” basta inserir a tag:

[html]{{block id=’meu-bloco’}}[/html]

Onde “meu-bloco” é o identificador (nome) que você deu ao seu bloco no momento em que criou ele.

Se você for inserir pelo construtor de layout, os famosos XML’s, então poderia criar um bloco com o nome do seu id:

[xml]<block type=”cms/block” name=”meu-bloco”><action method=”setBlockId”><id>meu-bloco</id></action></block>[/xml]

Lembrando que o “block” deve estar dentro de uma referência para indicar o posicionamento na tela, algo como: <reference name=”left”>..o block..</reference>

Caso deseje mostrar os blocos nas páginas de categorias de produtos, aquelas telas onde são exibidos os catálogos em modo lista ou tabela, então o processo é ainda mais simples.

Vá no seu Gerenciador de Categorias e selecione a categoria que irá exibir o bloco, na guia “Display Settings” ou “Opções de Exibição” selecione no campo “Display Mode” ou “Modo de Exibição” a opção “Produtos e Blocos Estáticos“.

bloco em categoria

bloco em categoria

Feito isso, basta selecionar no campo abaixo “CMS Block” o nome do seu bloco. Basta salvar e ver o resultado no frontend.

Para finalizar, vamos ver o código necessário para exibir um bloco estático nos detalhes dos produtos. Abra o arquivo view.phtml que fica em app -> design -> frontend -> base -> default -> template -> catalog -> product e insira o código abaixo:

[php]<?php echo $this->getLayout()->createBlock(‘cms/block’)->setBlockId(‘meu-bloco’)->toHtml(); ?>[/php]

Em qualquer parte do código, aqui no meu teste inseri logo abaixo da linha <?php echo $this->getTierPriceHtml() ?> e não se esqueça de trocar “meu-bloco” pelo identificador do seu bloco.

Bom, na verdade mesmo, até é possível inserir um bloco nas telas de produtos pelo sistema sim. Quando você vai editar um produto, no menu a esquerda você tem a opção “Template” com um campo aberto para atualizações de layout em XML, onde poderia incluir o código descrito no início deste post:

bloco em produtos

bloco em produtos

Mas dessa forma é aplicado apenas para o produto selecionado. No exemplo abaixo veja que coloquei dentro da referência “content“, assim ele vai inserir o bloco no final do conteúdo exibido pelo produto.

[xml]<reference name=”content”>
<block type=”cms/block” name=”meu-bloco”>
<action method=”setBlockId”><id>meu-bloco</id></action>
</block>
</reference>[/xml]

Enfim, existem mil e uma maneiras de usar os blocos, invente a sua! :D

Sucesso!

, , , , , ,

Sobre Mario SAM

Mestrando em Comércio Eletrônico e Intenet, com pós-graduação em Gestão de Projetos e TI, MBA em Marketing, formado em Web Design e Programação. Certificado SCJP/SUN. Colunista da revista WIDE, problogger...entre outras coisas...faixa preta.