Magento bekommen Layout für bestimmte Seite

8

Ich arbeite an einem Magento Modul, wo ich das Layout von einer Frontend-Seite holen möchte. Mit Frontend-Seite meine ich alle Arten von Seiten, d. H. CMS-Seite, Kategorie, Produkt, Warenkorb, mein Konto, etc.

Ich habe das ausgezeichnete Magento-Nofrills-eBook von Alan Storm gelesen und benutze sein Commercebug-Plugin, um mir bei der Entwicklung meiner Magento-Site zu helfen. Ich habe auch einige Zeit auf Stackoverflow verbracht, auf der Suche nach einer ähnlichen Frage, bitte vergib mir, wenn ich es verpasst habe.

Wenn ich zum Beispiel eine Seiten-ID oder eine Kategorie-ID habe, wie hole ich das Layout dieser Frontend-Seite aus dem Code, der im Backend läuft?

Ich habe mit der Anfrage gespielt, und wenn ich diesen Code im Frontend ausführe, kann ich sehen, dass das Modul, der Controller, die Layout-Handles usw. geändert werden, wenn ich zum Beispiel eine Katalogseite betrachte

%Vor%

Aber wenn ich das xml aus dem Layout inspiziere, kann ich Magento nicht zwingen, mir das xml für (in diesem Beispiel) CMS-Seite mit id = 6:

zu zeigen %Vor%

Vielleicht denke ich viel zu kompliziert. Ich möchte überprüfen, ob eine bestimmte Seite Seitenleisten hat, welche Blöcke und Elemente auf der Seite und in den Seitenleisten angezeigt werden (nur aktive Blöcke, nicht die ignorierten).

Vielen Dank im Voraus! Tim

    
Tim 11.08.2011, 14:38
quelle

1 Antwort

5

Rufen Sie loadLayout () vor getLayout () auf.

Sie können überprüfen, ob ein Block im Layout aktiv ist, indem Sie getBlock ($ block_name) aufrufen:

%Vor%

Wenn der Block nicht Teil des Layouts ist (oder ignoriert wird), ist $ left_block falsch. Sie können getBlock () in Verbindung mit getSortedChildren () verwenden, um seine untergeordneten Blöcke zu sehen:

%Vor%

Der obige Befehl gibt ein String-Array mit Blocknamen im Block "content" zurück. Nur Namen aktiver Blöcke werden zurückgegeben.

    
Joe 22.03.2012 19:36
quelle

Tags und Links