我遇到了一个问题,即定义{block}
的值会引入很多不必要的空格。
我有一个主模板,我们称之为main.html
,看起来像这样(简化):
<html>
<title>{block name=title}{$default_title}{/block}</title>
...
</html>
然后我继续使用它来说topics.html
,并在其中定义标题栏:
{extends file="main.html"}
{block title}
{if $topic}
{if $topic == "all"}
{eval $Config['titles']['topics']['all']}
{else}
{eval $Config['titles']['topics']['particular']}
{/if}
{else}
{eval $Config['titles']['topics']['list']}
{/if}
{/block}
现在,当我编译topics.html
模板时,<title>...</title>
标记内有很多空格。
例如,它看起来像这样:
<title>
Showing all wiki topics </title>
如何从评估块的结果中修剪/剥离空白,使其看起来如下所示:?
<title>Showing all wiki topics</title>
我尝试在{strip}...{/strip}
周围添加{block title}...{/block}
,如下所示:
{strip}
{block title}
...
{/block}
{/strip}
但这并没有改变任何事情。
我也试过这个:
{block title|strip}
...
{/block}
但这是语法错误。我也试过这个:
{block title|trim}
...
{/block}
但这也是语法错误。
我也尝试过:
{block title}
{strip}
...
{/strip}
{/block}
但是这也没有帮助,因为我已经在{block title}
之后引入了一个新行,所以它保留在编译模板中。
任何帮助表示赞赏!
答案 0 :(得分:2)
从Smarty 3.1开始,你无法将{block}
包装在其他结构中。 (这可能会随Smarty 3.2而改变)
您是否尝试将{strip}
标记放入{block}s
内?否则请查看my answer here