In einem Modul, das ich schreibe, möchte ich mit mymodule.xml meinen eigenen Block nach diesem Block einfügen:
%Vor%, das in
verschachtelt ist %Vor%wie in app / design / frontend / base / default / layout / catalog.xml
zu sehen istIch habe viele Varianten ausprobiert wie:
%Vor%und nur
%Vor%und
%Vor%aber ich kann nicht die richtige Kombination finden. Der einzige, der meinen Block rendert, ist:
%Vor%aber offensichtlich ist es nicht dort platziert, wo ich es platzieren wollte.
Wenn Sie sich die Deklaration des Inhalts in page.xml
ansehen, sehen Sie Folgendes.
Standardmäßig ist der Block namens content ein core/text_list
, was in ein Mage_Core_Block_Text_List
übersetzt wird.
Der Zweck eines core/text_list
Blocks ist einfach. Sie rendern automatisch alle Blöcke, die in sie eingefügt wurden . Deshalb können Sie einen Block erfolgreich in den Inhalt einfügen.
Der Block den Sie einfügen möchten in
%Vor% ist ein catalog/product_view
, was zu einem Mage_Catalog_Block_Product_View
führt, das letztendlich von Mage_Core_Block_Template
erbt. Das macht es zu einem Template-Block. Vorlagenblöcke nicht rendern ihre untergeordneten Elemente automatisch. Template-Blöcke werden eine phtml
-Datei darstellen. Wenn das phtml
einen Aufruf an
dann wird der Block mit diesem spezifischen Namen gerendert. Wenn die Datei phtml
einen Aufruf an
dann all werden die untergeordneten Blöcke gerendert.
Also, wenn du sagst
%Vor% Sie fügen einen Block vom Typ mymodule/folder_class
in den Block product.info
ein. Da product.info
jedoch ein Vorlagenblock und kein Textlistenblock ist, wird der von Ihnen eingefügte Block nicht gerendert. Sie müssen eine benutzerdefinierte catalog/product/view.phtml
Vorlage zu Ihrem Design hinzufügen (indem Sie die Basisvorlage kopieren) und dann am unteren Rand von view.phtml
hinzufügen