condições para a exibição de blocos estáticos
-
12-12-2019 - |
Pergunta
Eu estou trabalhando na entrega de um personalizados série de mensagens através de blocos estáticos com base em determinadas condições, o cliente possui.
Por exemplo, eu gostaria de apresentar uma oferta personalizada de mensagem vs.uma alternativa de oferta personalizada de mensagem, dependendo se um cliente está conectado, e se eles fizeram uma compra no passado.
Eu criei todos os blocos estáticos e todos eles exibem onde eles devem se eu habilitá-los manualmente.O que eu estou querendo aprender, é como e onde eu posso inserir a lógica condicional que irá determinar SE o bloco será utilizado ou não.
Eu estou supondo que eu, será necessário incluir este ou similar lógica condicional em cada página de um cliente pode navegar e sobre as quais eu gostaria de entregar ofertas ou mensagens.Algumas páginas terá este tratamento, outros não.
O que eu estou pedindo, principalmente sobre ONDE para implementar o código para um não-CMS página.
Obrigado por qualquer ajuda ou comentários.
Solução
A partir de sua pergunta, não é claro que você precisa para exibir esses blocos estáticos.No entanto, com base no meu entendimento, eu vou fornecer-lhe algumas dicas.
Então, basicamente, você tem alguns blocos estáticos com você e você precisa mostrar a eles apenas quando alguma condição de ficar satisfeito.
Aqui nós vai.Eu supor que você precisa para mostrar a esses blocos na parte direita de cada página.Para isso, você precisa criar uma local.xml
arquivo de layout.
Arquivo : app/design/frontend/<your_package>/<your_theme>/layout/local.xml
<layout>
<default> <!-- this layout handle enable its child block appear almost every page -->
<reference name="right"> <!-- this let static block appear in the right section -->
<block type="core/template" name="conditional.static.blocks.container" template="staticblocks/contaier.phtml">
<block type="cms/block" name="static.block.1" as="static_block_1">
<action method="setBlockId"><block_id>code-for-sb-1</block_id></action>
</block>
<block type="cms/block" name="static.block.2" as="static_block_2">
<action method="setBlockId"><block_id>code-for-sb-2</block_id></action>
</block>
<!-- continue this step for every block -->
</block>
</reference>
</default>
</layout>
Arquivo : app/design/frontend/<package>/<theme>/template/staticblocks/contaier.phtml
<?php if({condition_1_satisfies}) : ?>
<div><?php echo $this->getChildHtml('static_block_1'); ?></div>
<?php endif; ?>
<?php if({condition_2_satisfies}) : ?>
<div><?php echo $this->getChildHtml('static_block_2'); ?></div>
<?php endif; ?>
<!-- continue this logic here for every static block according to your need -->
A vantagem deste método é que, ele dá-lhe uma grande flexibilidade.Em cada página, no lado direito você pode ver este bloco.Uma vez que estamos usando diferentes condições em que o pai do bloco , apenas estático desejado bloco vai aparecer no frontend.
Como eu já disse, esta é apenas uma idéia.Você pode elaborar-lo com suas próprias condições.
Espero que ajude