scope von smarty.block.parent?

Die Verwendung von {smarty.block.parent} anstelle von append und prepend ist ja klar, aber auf welchen Block bezieht sich der Ausdruck, wenn blöcke verschachtelt sind?
Ich frage, weil mich eine Änderung in 5.3.4 nachdenklich macht, weil ich hier wieder eine Änderung mit Copy & Paste übernehmen müsste.
 

{block a}
  was geändert
  {block b}
    Copy & paste original Block
  {/block}
{block}

Worauf würde sich nun {smarty.block.parent} beziehen, wenn ich anstelle von Copy & Paste in {block b} einführe?
Was würde smarty hier machen?

Konkret Änderung in 5.3.4:
shopware/main-navigation.tpl at 7c271dbfb62cdbbeab4a728d48d108c8f5d67ee4 · shopware/shopware · GitHub
Änderung nur in der LI-Zeile, der innere Block wäre unverändert. Würde hier ein {smarty.block.parent} den inneren Block von Bare laden?!?

{smarty.block.parent} bezieht sich in deinem beispiel auf block a des parents. Kleines Beispiel:

parent.tpl

{block a}
  
      Titel

      {block b}
          hier kommt der inhalt
      {/block}
  
{block}

child.tpl

{block a}
  
      Ich möchte im child einen anderen titel

      {block b}
          
          {$smarty.block.parent}
      {/block}
  
{block}

Ausgabe

    Ich möchte im child einen anderen titel

    
        Titel
        hier kommt der inhalt

Das ist natürlich sehr supoptimal zb wenn man nur die HTML Stuktur um einen block herum ändern will, aber der block b weiterhin den content des parent block b haben soll.

Habe dazu bisher keinerlei Lösung gefunden. Vielleicht gibt es hier im Forum ein paar smarty cracks die eine Idee haben wie man das lösen könnte?!

Nur so als Schnellschuss ohne drüber nachzudenken:

{block a}

{* block b *}
{include file='abc.tpl'}
{* /block *}

{/block}

{extends file='parent:file/mit/block a.tpl'}

{block a}

{/block a}

{block b}{$smarty.block.parent}{/block b}

{block c}{/block c}

Macht es auch nicht wartbarer…