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.

Foi útil?

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

Licenciado em: CC-BY-SA com atribuição
Não afiliado a magento.stackexchange
scroll top