2012-02-04 2 views
1

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

{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

Я не уверен, правильно ли я это понял. Вы хотите отобразить содержимое блока «сообщение» вне блока «тело», если «тело» определено в дочернем?

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

{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} 
+0

Спасибо, с некоторыми изменениями (мне просто нужно '{$ Foo}' после захвата), который отлично работает! – Ryan

Смежные вопросы