Frage

Hier ist also die Situation.Ich muss eine erstellen core/template Programmgesteuert blockieren, falls vorhanden CMS Block(Static Block) ist in der Layoutstruktur vorhanden.Ich werde diese Vorlage verwenden, um dynamisch Inhalte hinzuzufügen.

Wenn es einen Beobachter für statische Blöcke gibt, kann ich ihn verwenden.Eine andere Möglichkeit wäre, dass ich dasselbe durch Layouts erreichen kann, wenn ein statischer blockspezifischer Layout-Handle vorhanden ist (genau wie cms_page Layout-Handle).

Aber ich konnte noch keinen Beobachter für statische Blöcke finden.Ich kann also nicht mit Beobachter gehen.Ich suche auch nach einem statischen Block-spezifischen Layout-Handle.Diese Suche hat auch mich zur Verzweiflung gebracht.Ich konnte keinen finden.Daher ist auch die Aktualisierung des Layouts nicht möglich.

Daher scheint es die einzige Möglichkeit zu sein, dies zu erreichen, indem ich allgemeine Ereignisse beobachte (vielleicht). controller_action_layout_generate_blocks_after).Aber ich finde, es ist eine zu schlechte Art und Weise.

Was soll ich jetzt machen ?Was wäre die beste Methode, dies zu tun?Kann ich einen benutzerdefinierten Ereignis-Listener für statische Blöcke erstellen (ich weiß nicht, ob das möglich ist!!)?Teile deine Gedanken.

Notiz : Ich erstelle eine Erweiterung.Ich möchte es so sauber wie möglich haben.:) :)

War es hilfreich?

Lösung 2

Es scheint, dass es keinen anderen Weg gibt, dies zu tun.Also habe ich mir das allgemeine Geschehen angehört controller_action_layout_generate_blocks_after .Dort habe ich einen neuen Block erstellt, falls ein CMS-Block vorhanden ist.

Andere Tipps

Vielleicht können Sie einen Helfer im XML verwenden und nach einer Bedingung darin suchen, indem Sie eine Bedingung im XML ausführen und dann entsprechend handeln.Es könnte besser sein, als jede einzelne Blocklast mit einem Beobachter zu beobachten.

Hier ist eine Antwort für den XML-Ansatz.

<action method="addLink" translate="label title" module="catalog" ifconfig="catalog/seo/site_map">
    <label>Site Map</label>
    <url helper="catalog/map/getCategoryUrl" />
    <title>Site Map</title>
</action>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top