Latte -var- syntax error unexpected =

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

Ahojte. Rad bych pozadal o pomoc. Pri migraci z 2.1.9 na 2.2.2 puvodne funckni kod v sablone:

{var $depth = 0}
{foreach $parents as $key => $parent}
{var $depth++}
// dalsi vyuziti $depth uvnitr cyklu foreach
{/foreach}
// dalsi vyuziti $depth mimo cyklus foreach

… S inkrementovanou $depth se pote dal nakladalo (uvnitr i mimo cyklus foreach). Nyni ve verzi 2.2.2 konci chybou:

Parse Error → syntax error, unexpected ‚=‘

Pri odstraneni var z {var $depth++}, tj. {$depth++} stranka jiz funguje, avsak hodnota {$depth++} se vypisuje do sablony, coz ve verzi 2.1.9 korektne nedelala. Napr. $iterator->counter uzit nemohu, ponevadz potrebuji $depth i mimo cyklus foreach.

Editoval DavidTheNewbie (17. 2. 2017 8:27)

h4kuna
Backer | 740
+
+1
-

Budeš muset udělat přes php makro

{php $depth++} v2.4+
nebo starší nette
{? $depth++}

Nicméně je možné použít iterator v cyklu foreach

{$iterator->getCounter()}

EDIT: Doplnil jsem jak to zapsat ve starší verzi nette.

Editoval h4kuna (17. 2. 2017 9:10)

DavidTheNewbie
Člen | 79
+
0
-

h4kuna napsal(a):

Budeš muset udělat přes php makro

{php $depth++}

Nicméně je možné použít iterator v cyklu foreach

{$iterator->getCounter()}

Ahoj. Pouziti PHP makra {php $depth++} Generuje chybu:

User Error → Exception in Nette\Bridges\ApplicationLatte\Template::__toString(): Unknown macro {php} in …/../default.latte:15 in /var/www/nette/vendor/latte/latte/src/Latte/Compiler.php:530

getCounter() pouzit bohuzel nemohu, jelikoz potrebuji promennou pouzit i mimo cyklus foreach.

Editoval DavidTheNewbie (17. 2. 2017 8:46)

CZechBoY
Člen | 3608
+
+1
-

V ty 2.2 to je asi ještě otazník.

{? $depth++}
DavidTheNewbie
Člen | 79
+
0
-

CZechBoY napsal(a):

V ty 2.2 to je asi ještě otazník.

{? $depth++}

Otaznik se zda byt korektni reseni. Existuje nekde nejaka dokumentace, kde by se clovek o nutnosti teto zmeny dozvedel?

CZechBoY
Člen | 3608
+
+1
-

Ve 2.4 je nutnost použít {php ..}
https://doc.nette.org/…tions/to-2-4#…