curlyBrackets assign

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
stpnkcrk
Generous Backer | 190
+
0
-

Bylo by možné trochu objastní použití syntaxe {assign $var 'value'}?

Zkusil jsem to použít v souboru Homepage/default.phtml, ale v @layout to řve, že ta proměnná není nastavená.

Dík. :)

David Grudl
Nette Core | 8218
+
0
-

To je totéž, co dříve {param ...}, jen jsem zjistil, že Smarty obsahuje něco podobného nazvaného assign a snažím se být kompatibilní.

stpnkcrk
Generous Backer | 190
+
0
-

Fajn, myslel jsem si to. V souboru /app/templates/Homepage/default.phtml mám jako první řádek

{assign $title 'Úvodní stránka'}

V souboru /app/templates/@layout.phtml chci tuto proměnnou použít (v <title> a <h1>), ale řve to na mě, že proměnné $title není nastavená. Kde je svízel?

Honza Marek
Člen | 1664
+
0
-

Asi v tom, že david zrušil to obrácené renderování. Takže nejdřív se zpracuje layout, kde proměnná není a pak až teprve content.

stpnkcrk
Generous Backer | 190
+
0
-

A jaký je tedy potom smysl celého {assign …}?

Honza Marek
Člen | 1664
+
0
-

Menší. Ale dokázal bych si to představit třeba tady.

jasir
Člen | 746
+
0
-

Význam má při dědičnosti šablon.

template_base.phtml:

<head>
<title>{title}</title>
</head>
...
{block #content}
defaultni obsah
{/block}

template.phtml

{assign $title 'titulek stranky'}
{extends 'template_base.phtml'}
{block #content}
novy obsah stranky
{/block}

mimochodem ja jsem uplne zrusil pouzivani @layout.phtml a pouzivam pouze dědičnost šablon a je to vynikající

stpnkcrk
Generous Backer | 190
+
0
-

Ahaaaa, tak to je úžasné! Všiml jsem si, že něco jako dědičnost šablon existuje ale nějak mě nenapadlo, že to lze použít i takhle. :)

Jod
Člen | 701
+
0
-

Extend miesto @layout? To treba vyskúšať :)

David Grudl
Nette Core | 8218
+
0
-

Tohle je ve stádiu experimentování, takže to na ostrém provozu zatím nepoužívejte.