Zmena hodnoty promenne v sablone

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

Zdravim,

chtel bych se zeptat, zda lze nejakym zpusobem zmenit hodnotu promenne poslane do sablony, jejichz novou hodnotu bych pouzil v dalsi includovane casti layoutu. Nemusite mi zde napovidat „lepsi“ a idealnejsi reseni, staci pouze jestli to nejak jde ci nejde – nic kloudneho se mi nepodarilo vygooglit. Jde o to, ze je to speficicke „ohnuti“ takoveho jednoducheho CMS – nechci to resit 2 iteracemi v presenteru a v sablone, nybrz jen v sablone. Podotykam, ze klasicky assign v tomto pripadne „nefungoval“ :-)

Verze nette je 0.9.7 a PHP 5.3.x, predem diky za odpovedi :-)

Michal Vyšinský
Člen | 608
+
0
-

IMO by to mohlo jít přes makro var

Mr.S1lent.cz
Člen | 3
+
0
-

Bohuzel nejde – je to vicemene to same, jako assign. Mam to resene tak, layout includuje sablonu 1, ve ktere iteruji urcita data a nastavuji nejaky flag, ktery chci pouzit v sablone 2, kterou layout includuje po ni (takze nemuzu odeslat promennou jako 2. parametr pro include macro). Ale at delam, co delam, na globalni urovni zmenit hodnotu promenne poslane do sablony proste nejde :-/ Aspon mne ne.

Ovsem ted jsem v prubehu psani odpovedi prisel na reseni, ktere se jevi jako funkcni. Nastavil jsem promennou (onen zminovany flag) do pole $GLOBALS. Je to sice trosku prasecinka, ale jiny funkncni zpusob jsem zatim nenasel :-)

nanuqcz
Člen | 822
+
0
-

Co myslíš tím „klasický assign“? (doufám, že nemyslíš to, co ti chci teď poradit :-D )

Zkus

<div id="content">
    {include #content, nazevPromenneKterouChciZmenit => "nová hodnota"}
</div>
Mr.S1lent.cz
Člen | 3
+
0
-

Tak psal jsem mimojine tohle:

„Mam to resene tak, layout includuje sablonu 1, ve ktere iteruji urcita data a nastavuji nejaky flag, ktery chci pouzit v sablone 2, kterou layout includuje po ni (takze nemuzu odeslat promennou jako 2. parametr pro include macro).“

cili:

<div id="tohle_je_layout">
    {include template_kde_menim_flag.phtml}

    {include template_kde_chci_pouzit_zmeneny_flag, 'takhle_to' => $nejde}
</div>