Nefunguje ifCurrent se zavináčovou magií

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Ondřej Mirtes
Člen | 1536
+
0
-

Jelikož je podpora dědičnosti pro šablony stále rozpracovaná, musel jsem si v jednom konkrétním případě pomoci podmínkou okolo $content->render() v layoutu. Ta podmínka sestává z ifCurrent. Tahle konstrukce (v {else} bloku jsem měl navíc nějaké HTMl, pro přehlednost jsem ho vymazal) vyvolá parse error:

{ifCurrent Default:}
@{? $content->render() }
{else}
@{? $content->render() }
{/if}
jasir
Člen | 746
+
0
-

Můžeš to prosím zkusit takhle? Jen pro zajímavost?

LastHunter napsal(a):

@{ifCurrent Default:}
@{? $content->render() }
@{else}
@{? $content->render() }
@{/if}

Editoval jasir (23. 6. 2009 23:19)

Ondřej Mirtes
Člen | 1536
+
0
-

Funguje! :)

jasir
Člen | 746
+
0
-

jasir napsal(a):

Můžeš to prosím zkusit takhle? Jen pro zajímavost?

LastHunter napsal(a):

@{ifCurrent Default:}
@{? $content->render() }
@{else}
@{? $content->render() }
@{/if}

Prima, tak sem fakt mág! ;-)

Editoval jasir (24. 6. 2009 1:14)

R2D2
Člen | 22
+
0
-

ono na tom neni nic divného, bloky se prostě nesmí křížit .. zavináč je jen konec ifu, to co je se zavináčem je mimo, a dál je zas if (SnippetHelper::$outputAllowed) … v této podmínce je jinak obaleno vše co není zavináčováno …

pokud chceme v rámci tohoto implicitního ifu mít nějakej další blok (podmínka, cyklus a další) tak vevnitř ten vnější if ukončit prostě nejde, křížily by se.. zavináč před blokovejma prvkama ten velkej if rozdělí na víc částí, mimo blok a v bloku, pak to jde vevnitř ukončit normálně jako jinde..

kdyby to někdo dokázal líp formulovat, tak je myslim zavináčová magie vhodnej kandidát na zápis do dokumentace :)