# Index-Struktur ändern ohne innere Block-Inhalte zu kopieren

**URL:** <https://forum.shopware.com/t/index-struktur-andern-ohne-innere-block-inhalte-zu-kopieren/18649>\
**Category:** Shopware 3.5\
**Tags:** themes--design\
**Created:** [24. Februar 2014 um 16:27 UTC](https://forum.shopware.com/t/index-struktur-andern-ohne-innere-block-inhalte-zu-kopieren/18649 "2014-02-24T16:27:55Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![Hancoque2](https://avatars.discourse-cdn.com/v4/letter/h/ce7236/32.png) [@Hancoque2](https://forum.shopware.com/u/Hancoque2)\
**Post date:** [24. Februar 2014 um 16:27 UTC](https://forum.shopware.com/t/index-struktur-andern-ohne-innere-block-inhalte-zu-kopieren/18649/1 "2014-02-24T16:27:55Z")

</div>

Ich möchte das Index-Template (frontend/index/index.tpl) ableiten, um darin verwendete Blöcke anders anzuordnen. D.h. ich möchte die Blöcke selbst nicht ändern, sondern lediglich Blöcke verschieben und den umgebenden HTML-Code etwas anpassen. Dazu möchte ich so wenig bestehenden Code wie möglich kopieren, sondern möglichst abgeleitet weiternutzen (Stichwort Update-Sicherheit). Das scheint nur nicht so zu klappen, wie ich mir das wünsche. Hier der Code: [code]{extends file=“parent:frontend/index/index.tpl”} {block name=‘frontend\_index\_navigation’}

{block name=‘frontend\_index\_logo’}{$smarty.block.parent}{/block}

{block name=‘frontend\_index\_checkout\_actions’}{$smarty.block.parent}{/block}

{block name=‘frontend\_index\_search’}{$smarty.block.parent}{/block}

…

{block name=‘frontend\_index\_navigation\_categories\_top’}{$smarty.block.parent}{/block} {/block}[/code]Wie man sieht, möchte ich u.a. einfach den Block frontend\_index\_logo aus dem Eltern-Template wiedernutzen. Nur leider scheint sich $smarty.block.parent nicht auf den unmittelbar umschließenden Block zu beziehen, sondern auf den äußersten definierten Block frontend\_index\_navigation. Das führt dazu, dass nicht der jeweilige Blockinhalt ausgegeben wird, sondern immer wieder der Hauptblock. Die Frage ist nun: Wie kann ich Teile der Index-Struktur ändern, ohne die inneren Blöcke neu definieren und damit Code unnötig duplizieren zu müssen?

---

<div class="post-metadata">

**Author:** ![Philipp\_Schuch](https://avatars.discourse-cdn.com/v4/letter/p/8797f3/32.png) [@Philipp\_Schuch](https://forum.shopware.com/u/Philipp_Schuch)\
**Post date:** [25. Februar 2014 um 09:12 UTC](https://forum.shopware.com/t/index-struktur-andern-ohne-innere-block-inhalte-zu-kopieren/18649/2 "2014-02-25T09:12:47Z")

</div>

Hallo, leider kann man in einer Vererbungsdatei welche von einer anderen Datei ableitet immer nur auf einzelne Blöcke zugreifen. Ineinander verschachtelte Blöcke lassen sich so leider nicht direkt verschieben. Man müsste dann den Inhalt der Blöcke statisch übernehmen. Wenn Du die Blöcke verschieben aber auch die Updatefähigkeit der Blöcke erhalten möchtest, kannst Du die Datei ohne den {extends} Befehl einfach überschreiben und die Blöcke dann frei sortieren. Dadurch wird die eigentliche Datei überschrieben und die Blöcke neu definiert, wodurch andere Templates und Plugins weiterhin an den Blöcken ansetzen können. Sonnige Grüße, Phil

---

<div class="post-metadata">

**Author:** ![Martin\_Schindler](https://avatars.discourse-cdn.com/v4/letter/m/22d042/32.png) [@Martin\_Schindler](https://forum.shopware.com/u/Martin_Schindler)\
**Post date:** [25. Februar 2014 um 11:24 UTC](https://forum.shopware.com/t/index-struktur-andern-ohne-innere-block-inhalte-zu-kopieren/18649/3 "2014-02-25T11:24:04Z")

</div>

Die Inhalte innerer Blöcke müssen nicht statisch übernommen werden. Es reicht wenn man die Blöcke anlegt und darin dann mit {$smarty.block.parent} dann den Inhalt aus dem geeerbten Block des Vatertemplates holt.

---

<div class="post-metadata">

**Author:** ![Philipp\_Schuch](https://avatars.discourse-cdn.com/v4/letter/p/8797f3/32.png) [@Philipp\_Schuch](https://forum.shopware.com/u/Philipp_Schuch)\
**Post date:** [5. März 2014 um 09:31 UTC](https://forum.shopware.com/t/index-struktur-andern-ohne-innere-block-inhalte-zu-kopieren/18649/4 "2014-03-05T09:31:55Z")

</div>

Wie gesagt, mit {$smarty.block.parent} kann zwar der Inhalt des direkt vererbten Blocks übernommen werden, hier war aber die Rede von verschachtelten Blocks. Es ging darum die Reihenfolge von innerliegenden Blöcken innerhalb eines äußeren Blocks zu verändern und dabei den Inhalt der einzelnen Blöcke zu übernehmen. Ich denke hier wird der Begriff “Parent” oft falsch verstanden, denn hier gilt es zwischen Codehierarchie und Vererbungshierarchie zu unterscheiden.

---

<div class="post-metadata">

**Author:** ![HGN](https://avatars.discourse-cdn.com/v4/letter/h/f07891/32.png) [@HGN](https://forum.shopware.com/u/HGN)\
**Post date:** [29. September 2014 um 16:14 UTC](https://forum.shopware.com/t/index-struktur-andern-ohne-innere-block-inhalte-zu-kopieren/18649/5 "2014-09-29T16:14:57Z")

</div>

Beitrag gelöscht!
