【问题标题】:Template inheritance: remove block that was added in grandparent and appended to in parent模板继承:删除在祖父母中添加并附加到父母中的块
【发布时间】:2014-11-19 12:45:34
【问题描述】:

在一个 smarty 模板中,我有三个模板:

base.tpl

{block name="myBlock"}
    base
{/block}

child.tpl

{extends file="base.tpl"}
{block name="myBlock" append}
    child
{/block}

grandchild.tpl

{extends file="child.tpl"}
{block name="myBlock"}{/block}

渲染grandchild.tpl时,输出为

base

所以孙模板想要替换整个块的内容,但只替换附加的部分。如何删除整个区块?

相关:How to remove content appended to block in parent template?

【问题讨论】:

    标签: smarty smarty3


    【解决方案1】:

    这里的解决方案是在child.tpl更改块定义从:

    {block name="myBlock" append}
        child
    {/block}
    

    进入:

    {block name="myBlock"}
        {$smarty.block.parent} child
    {/block}
    

    【讨论】:

    • 谢谢,这可能会解决问题。问题是,我无法修改base.tplchild.tpl(由第三方提供)。还有解决办法吗?
    • @Jost 我不知道能不能做到。我还没有找到任何其他解决方案来使它工作。只有上面那个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2012-05-03
    • 1970-01-01
    • 2016-05-08
    • 2016-08-18
    • 2022-11-29
    • 1970-01-01
    相关资源
    最近更新 更多