Podmienka if v makre {extends}

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

Napadlo ma použitie podmienky pri makre {extends} ako to bolo doplnene pri {cache}, bolo by možné niečo take doplniť aj do extends?

V sučasnosti používam pri verzii tlač:

{if $isPrint === TRUE}{var $layout = '@layout.print.phtml'}{/if}
{extends $layout}

možno by mohlo byť

{extends '@layout.print.phtml', if => $isPrint}

ak je $isPrint true, by sa použil @layout.print.phtml, inak globalny layout

Editoval dakota (11. 11. 2010 9:36)

norbe
Backer | 405
+
0
-

Nebylo by v téhle konkrétní situaci lepší využí spíš speciálního css(<link rel="stylesheet" media="print" href="/print.css" type="text/css" />)?

dakota
Člen | 148
+
0
-

css s media=„print“ sa da použiť (s display:none pri častiach ktoré nechcem vytlačiť) aj to použivam, ide mi len o použitie kedy mam ine hlavičky a päty v verzii pre tlač a pod, vtedy mi je lepšie použiť samostatny layout pre tlač, na podmienke v extends netrvám

Jan Tvrdík
Nette guru | 2595
+
0
-

Zkus

{extends $isPrint ? '@layout.print.phtml' : $layout}
dakota
Člen | 148
+
0
-

Jan Tvrdík napsal(a):

Zkus

{extends $isPrint ? '@layout.print.phtml' : $layout}

vďaka za radu, ale takyto zapis asi nie je v makre extends možný, prevedie to na

$_l->extends = $isPrint;

a zobrazi sa len biela stránka

edit:

aj ked asi by bol lepšie čitatelný ako s if

da sa použiť zapis (je kratší ako som predtym uvadzal aj lepšie čitatelný)

{var $layout = $isPrint ? '@layout.print.phtml' : $layout}
{extends $layout}

Editoval dakota (11. 11. 2010 11:05)

David Grudl
Nette Core | 8218
+
0
-

V poslední revizi lze psát {extends $isPrint ? '@layout.print.phtml' : $layout}

dakota
Člen | 148
+
0
-

David Grudl napsal(a):

V poslední revizi lze psát {extends $isPrint ? '@layout.print.phtml' : $layout}

dik, je to lepšie ako použitie if v makre ako som navrhoval