静的ブロックを表示するための条件
-
12-12-2019 - |
質問
私は、顧客が所有する特定の条件に基づいて、静的ブロックを介してカスタマイズされた一連のメッセージを配信することに取り組んでいます。
たとえば、カスタマイズされたオファーメッセージと1つのカスタマイズされたオファーメッセージとを表示したい場合があります。顧客がログインしているかどうか、および過去に購入したかどうかに応じて、代替カスタマイズされたオファーメッセージを表示します。
私はすべての静的ブロックを作成し、それらが私が手動でそれらを有効にした場合に想定される場所をすべて表示しました。私が学ぶことを望んでいるのは、ブロックが使用されるかどうかを判断する条件付きロジックをどのように挿入できるか/どこであるかです。
私は、私がこのページまたは類似の条件付き論理を各ページに含める必要があると仮定しています顧客は、オファーやメッセージを配信したいと思うかどうかに移動することができます。いくつかのページはこの治療を受けます、他の人はそうではありません。
今のところCMS以外のページのコードを実装する場所について主に求めています。
あらゆる助けやコメントをありがとう。
解決
あなたの質問から、これらの静的ブロックを表示する必要がある場所では明確ではありません。しかし私の理解に基づいて、私はあなたにいくつかのヒントを提供します。
基本的にあなたはあなたといくつかの静的なブロックを持っています、そしてあなたはいくつかの条件が満たされるときだけ彼らを示す必要があります。
ここに行きます。私はあなたがすべてのページの右側にあるこれらのブロックを表示する必要があると思います。このためには、local.xml
レイアウトファイルを作成する必要があります。
ファイル: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>
.
ファイル: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 -->
.
この方法の利点は、大きな柔軟性を与えます。右側のすべてのページでこのブロックを見ることができます。親ブロックでさまざまな条件を使用しているので、希望の静的ブロックのみがフロントエンドに表示されます。
私がすでに言ったように、これは単なる考えです。あなたはあなた自身の条件でそれを詳しく述べることができます。
を助けたい