Re: [SMARTY-DEV] Incorrect newline counters
| From: | Monte Ohrt | Date: | Tue, 01 Jun 2004 21:42:53 +0000 |
| Subject: | Re: [SMARTY-DEV] Incorrect newline counters | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.smarty.dev |
| Request: | Send a blank email to php-smarty-dev+get-2363@lists.php.net to get a copy of this message | ||
I think this rule works: If a tag produces no output, then no newline should be produced by it.
examples:
{$foo}
{$foo2}
{$foo3}
The above vars should make newlines in the resulting template since they have output (even if it's empty).
{assign var="foo" value="bar"}
{assign var="foo2" value="bar2"}
{assign var="foo3" value="bar3"}
{if ...}
{/if}
{include ...}
The above functions should NOT make newlines in the resulting template, there is no output. They are purely functional.
Dmitry Koteroff wrote:
MO> I'd say in theory, any function on a line **by itself** that does not MO> produce output directly should not create a line in the output. So, #2 MO> would probably be the expected output. Similar example: MO> {if $foo} MO> bar MO> {/if} MO> should output: MO> bar\n MO> and not: MO> \nbar\n\n Stop. It is identical to PHP's behaviour: <?if (...) {?> bar <?}?> Result is "bar\n". But you had said before that newlines MUST not be ignored after {...} constructions! Can you explain this? Maybe newlines must be always deleted after block-tags, but not after function-tag? Can you explain the FULL behavour of different tags?