2012-06-17 4 views
2

У меня возникла проблема, когда определение значения {block} вводит много лишних пробелов.Как избавиться от пробелов в Smarty {block} s?

Я главный шаблон, давайте назовем его 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 Это не работает. См. Ответ ниже Родни. – bodacydo

ответ

2

С Smarty 3.1 вы не можете обернуть {block} s в других конструкциях. (Это может измениться с помощью Smarty 3.2) Вы пробовали поместить теги {strip} внутри {block}s? В противном случае взгляните на my answer here

+0

Я попытался поместить '{strip}' сразу после '{block}' без новой строки после '{block}', и это сработало, но это выглядит не очень хорошо. :) Также я попытался поставить ifs/elses снаружи и блокировать внутри ifs/elses, но smarty не понравилось. – bodacydo

+0

Как я уже сказал, '{block}' s не может быть завернуто ничем прямо сейчас ... – rodneyrehm

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