Frage

Ich arbeite daran, eine maßgeschneiderte Reihe von Nachrichten über statische Blöcke zu übermitteln, die auf bestimmten Bedingungen eines Kunden basieren.

Beispielsweise möchte ich möglicherweise eine benutzerdefinierte Angebotsnachricht anzeigen.eine alternative individuelle Angebotsnachricht, je nachdem, ob ein Kunde angemeldet ist und ob er in der Vergangenheit einen Kauf getätigt hat.

Ich habe alle statischen Blöcke erstellt und sie werden alle dort angezeigt, wo sie hingehören, wenn ich sie manuell aktiviere.Was ich lernen möchte, ist, wie/wo ich die bedingte Logik einfügen kann, die bestimmt, ob ein Block verwendet wird oder nicht.

Ich gehe davon aus, dass ich diese oder eine ähnliche bedingte Logik auf jeder Seite einbinden muss, zu der ein Kunde navigiert und auf der ich Angebote oder Nachrichten übermitteln möchte.Einige Seiten erhalten diese Behandlung, andere nicht.

Ich frage vorerst hauptsächlich, WO der Code für eine Nicht-CMS-Seite implementiert werden soll.

Vielen Dank für jede Hilfe oder jeden Kommentar.

War es hilfreich?

Lösung

Aus Ihrer Frage geht nicht klar hervor, wo Sie diese statischen Blöcke anzeigen müssen.Nach meinem Verständnis werde ich Ihnen jedoch einige Hinweise geben.

Im Grunde haben Sie also einige statische Blöcke dabei und müssen diese nur anzeigen, wenn eine bestimmte Bedingung erfüllt ist.

Los geht's.Ich gehe davon aus, dass Sie diese Blöcke im rechten Teil jeder Seite anzeigen müssen.Dazu müssen Sie eine erstellen local.xml Layoutdatei.

Datei : 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>

Datei : 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  -->

Der Vorteil dieser Methode besteht darin, dass sie Ihnen große Flexibilität bietet.Auf jeder Seite rechts ist dieser Block zu sehen.Da wir im übergeordneten Block unterschiedliche Bedingungen verwenden, wird im Frontend nur der gewünschte statische Block angezeigt.

Wie ich bereits sagte, ist dies nur eine Idee.Sie können es mit Ihren eigenen Bedingungen ausarbeiten.

Ich hoffe, das hilft

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top