1) Jedes Modul kann Layout-Dateien definieren, die im Ordner /interface/theme/layouts/ abgelegt werden. Sie können dies erreichen, indem Sie die Layouts in der config.xml-Datei Ihres Moduls wie folgt angeben:
<frontend>
<layout>
<updates>
<jason_page>
<file>jasonpage.xml</file>
</jason_page>
</updates>
</layout>
</frontend>
2) Ja.
a) Die Schnittstelle von Magento ist nach dem Prinzip der Deszendenz aufgebaut. Vorlagen und Layouts werden zunächst aus der von Ihnen gewählten Oberfläche und dem Thema übernommen, und wenn sie dort nicht zu finden sind, werden sie aus der Basis übernommen. Auf diese Weise können Sie bei der Erstellung einer neuen Seite nur die Dinge definieren, die sich gegenüber der Basis ändern.
b) Wenn Sie ein neues Modul mit Blöcken erstellen, müssen Sie den Klassenpfad für diese Blöcke in Ihrer config.xml angeben:
<global>
<blocks>
<jason_page>
<class>Jason_Page_Block</class>
</jason_page>
</blocks>
</global>
Damit wird das Tag jason_page
um auf Ihre Blöcke zu verweisen. Wenn Sie dann ein Layout definieren, verweisen Sie auf Ihre Blöcke als:
<block type='jason_page/blockname' as='blockname' name='blockname' />
Und Ihre Blöcke werden wie folgt benannt: Jason_Page_Block_Blockname
in /app/code/local/Jason/Page/Block/Blockname.php
c) Jedes Mal, wenn Sie eine <reference>
Tag und fügen Sie einige untergeordnete Blöcke hinzu, sie werden dem großen Baum hinzugefügt, wie Sie sagen. Achten Sie darauf, dass Sie verschiedene name
/ as
Tags für die Blöcke, und Sie werden gut sein. Wenn der Name identisch ist, werden Sie wahrscheinlich Fehler verursachen.
d) local.xml (in app/etc) definiert einige Konfigurationsparameter für Ihre Website, wie z.B. Datenbankverbindungsinformationen und Verschlüsselungsschlüssel. es hat nichts mit Layouts zu tun.
d Teil 2) Da Sie Ihre Layoutdateien, einschließlich ihrer Namen, selbst definieren, liegt es an Ihnen, Kollisionen zu vermeiden. Die Wahl eines Modulnamens, der eindeutiger als Page ist, würde hier viel bringen. Wenn Sie ein Modul mit demselben Namen wie ein Standardmodul (z. B. Page) haben, stellen Sie der Datei Ihren Namensraum voran, wenn Sie sie in Ihrer config.xml-Datei deklarieren.
Ich hoffe, das hilft!
Danke, Joe