Magento XML mit Vorher / Nachher zum Platzieren von Blöcken funktioniert kaum
Ich bin ein Front-End-Magento-Entwickler, habe einige meiner eigenen Themes erstellt und möchte die XML-Blockpositionierung von Magento besser verstehen ...
Ich benutze normalerweise einelocal.xml
Datei, um alles zu manipulieren, kann ich einen Block wie folgt definieren:
<cms_index_index>
<reference name="root">
<block type="core/template" name="example_block" as="exampleBlock" template="page/html/example-block.phtml"/>
</reference>
</cms_index_index>
Dies würde einen Block auf der Homepage erstellen (cms_index_index
) und da der Block eine Ebene unter erstellt wirdroot
Normalerweise würde ich den Block aufrufen, indem ich Folgendes hinzufüge:
<?php echo $this->getChildHtml('exampleBlock') ?>
...zu1column.phtml
(oder2columns-left
/right.phtml
, 3columns.phtml
usw). Der Block kann durch Ersetzen auf einer beliebigen Seite platziert werdencms_index_index
für das entsprechende Seitentag.
Ich sehe in den XML-Kerndateien und in den Tutorials Folgendes:
<reference name="root">
<block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
content
ist ein Block, der Teil der allgemeinen Seitenstruktur von magento ist und nach meinem Verständnisbefore="content"
sollte es dort platzieren, wo Sie es erwarten würden, ohne es verwenden zu müssengetChildHtml('exampleBlock')
, soweit so gut ... jedoch scheint Vorher / Nachher für mich kaum zu funktionieren, und ich greife häufig auf die Methode getChildHtml als Backup zurück, was nicht immer ideal ist und bedeutet, mehr .phtml-Dateien zu bearbeiten als nötig .
Ich habe es versucht:
<reference name="root">
<block type="core/template" name="example_block" before="content" template="page/html/example-block.phtml"/>
</reference>
Nichts erscheint ...
<reference name="root">
<block type="core/template" name="example_block" after="header" template="page/html/example-block.phtml"/>
</reference>
Immer noch nichts .... Mir ist auch bewusst, dass ich es benutzebefore="-"
oderafter="-"
um etwas vor alles innerhalb des übergeordneten Blocks zu platzieren. Ich habe gelegentlich etwas Glück damit, aber im Allgemeinen werde ich nur verwirrt und frustriert.
Ich habe überall nach 'magento xml before / after not working' gegoogelt und mich gefragt, ob das nur mir passiert ... kann mir jemand erklären, wann ich Blöcke vorher / nachher positionieren kann und wann nicht? Was stimmt mit den obigen Beispielen nicht?
Ich bin in Magento 1.7.0.2 (spätestens zum Zeitpunkt der Veröffentlichung verfügbar)
Die Hauptmotivation dafür ist, die Anzahl der .phtml-Kerndateien zu reduzieren, die ich bearbeiten muss, um eine hinzuzufügengetChildHtml()
Wenn es also eine andere (XML-) Möglichkeit gibt, dies zu umgehen, wäre ich interessiert zu wissen ...