Элегантный способ переместить родительский блок - PullRequest
1 голос
/ 05 февраля 2012

У меня есть родительский шаблон, например, так:

{block "body"}{block "message"}Some stuff{/block}{/block}

и шаблон, который расширяет указанный родительский шаблон, вот так:

{extends "parent.tpl"}

{block "body"}
    Some content...
    {block "message"}{$smarty.block.parent}{/block}
{/block}

и где {block "message"}{$smarty.block.parent}{/block} Я бы хотелвместо этого, чтобы переместить туда содержимое родительского блока - в основном, если шаблон расширяет родительский, сообщение должно отображаться прямо в теле, но если оно расширяет дочерний, оно должно отображаться в некоторой другой области.Есть хороший способ решить эту проблему с помощью шаблонов Smarty?

1 Ответ

1 голос
/ 06 февраля 2012

Я не уверен, правильно ли я понял.Хотите ли вы отобразить содержимое блока «message» вне блока «body», если «child» определено в потомке?

Это можно сделать следующим образом:

{block "body"}{block "message"}Some stuff{/block}{/block}
some text...
{if $foo}{$foo}{/if}

и

{extends file='parent.tpl'}
{block "body"}
  Some content...
  {capture assign=foo}{block "message"}{$smarty.block.parent}{/block}{/capture}
{/block}
...