2012-06-17 77 views
2

我遇到了一個問題,其中定義{block}的值會引入大量不必要的空白。如何擺脫Smarty {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

看來別人也有同樣的問題,請檢查http://stackoverflow.com/questions/9207163/remove-extra-html-spaces-in-smarty – fsenart

+0

我很驚訝'{strip} {block title} ...'不起作用,你確定嗎? –

+0

@WesleyMurch這不起作用。由rodney在下面看到答案。 – bodacydo

回答

2

從Smarty 3.1開始,您不能在其他構造中包裝{block}。 (這可能會隨着Smarty 3.2而改變) 你有沒有試過把{strip}標籤放在{block}s裏面?否則看看my answer here

+0

我嘗試在'{block}'之後在'{block}'之後放置'{strip}',而{block}'之後沒有換行符,但它看起來不太好。 :)我也試着把ifs/elses放在外面,並且在ifs/elses內部封鎖,但是smarty不喜歡那樣。 – bodacydo

+0

正如我所說,'{block}'現在不能被包裹在任何東西中...... – rodneyrehm