Hallo,
gibt es eine Möglichkeit Smarty-Blocks innerhalb einer .tpl-Datei zu verschieben und dabei den Namen des Blocks beizubehalten?
Einfaches Beispiel - Verschieben der Breadcrumbs:
{extends file="parent:frontend/index/index.tpl}
{* leere Block zunächst, damit dieser an seinem ursprünglichen Ort nicht mehr angezeigt wird *}
{block name='frontend_index_breadcrumb'}{/block}
{block name='frontend_index_navigation'}
{$smarty.block.parent}
{* erstelle mir einen neuen breadcrumbs-block *}
{block name='frontend_index_breadcrumb_verschoben'}
{if count($sBreadcrumb)}
<nav class="content--breadcrumb block">
{block name='frontend_index_breadcrumb_inner'}
{include file='frontend/index/breadcrumb.tpl'}
{/block}
</nav>
{/if}
{/block}
{/block}
Möchte beispielsweise nun ein Plugin auf die Breadcrumbs zugreifen, kennt dieses natürlich den neuen Block nicht und greift auf den alten Block. Schöner wäre eine Lösung des Verschiebens, bei welchem der Name des Block unverändert bleibt.
{extends file="parent:frontend/index/index.tpl}
{* leere Block zunächst, damit dieser an seinem ursprünglichen Ort nicht mehr angezeigt wird *}
{block name='frontend_index_breadcrumb'}{/block}
{block name='frontend_index_navigation'}
{$smarty.block.parent}
{* der Name des Blocks bleibt hier gleich. Smarty.block.parent könnte dann auch funktonieren *}
{block name='frontend_index_breadcrumb'}
{$smarty.block.parent}
{/block}
{/block}
Das Resultat dieser Bearbeitung ist jedoch, dass der Block nicht mehr angezeigt wird, da er oben geleert wird. Leere ich diesen nicht oben, werden die Breadcrumbs typischerweise doppelt angezeigt.
Gibt es eine schöne Lösung für ein solches Problem?