Include ruznych sablon v ruznych presenterech

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

Zdravim

mam web vseho vsudy o trech presenterech (a v kazdem nekolik akci)
Muj problem je, ze chci do kazdeho vlozit jine menu

Vytvoril jsem sablonu menu.latte pro kazdy presenter, ale ted nevim jak jej includovat… pri pouziti {include menu.latte} se sablona hleda jen ve sloze /templates/ a ne v /templates/<presenter> jak bych ja potreboval…
Zkousel jsem i ruzne kombinace s $presenter->getName(), ale stale se mi nedari dosahnout chteneho vysledku… Poradi nekdo

PS: jeste me napadlo to generovat jako componentu primo v presenteru, kde bych si to nakodil… Co si myslite o tomto zpusobu?

nanuqcz
Člen | 822
+
0
-

Ahoj, pokud jsem tě pochopil správně, tak ten příkaz {include menu.latte} používáš v layoutu. Napadá mě takovýhle způsob s využitím dědičnosti šablon:

soubor templates/@layout.latte

<html>
<body>
  <div id="header"></div>
  <div id="menu">
    {block #menu}{/block}
  </div>
  <div id="content">
    {block #content}{/block}
  </div>
</body>
</html>

soubor templates/Articles/default.latte

{block #menu}
  {foreach $links as $link}<a href="{$link->href}">{$link->text}</a>{/foreach}
  {*případně tady můžeš vložit ten {include menu.latte} <- pak se bude brát z aktuální složky*}
{/block}

{block #content}
  <p>{!$article->content}</p>
{/block}

V ostatních šablonách si pak můžeš {block #menu} vykreslit zase jinak. Stačí takhle?

Filip Procházka
Moderator | 4668
+
0
-

Zvážil jsi použití https://componette.org/search/?… ? :)

Tomas Jancik
Člen | 103
+
0
-

@xxxObiWan > diky za radu… mozna pujdu touto cestou, nicmene se mi moc nelibi, ze bych pak musel v kazde sablone davat zase ten include… chtel bych ho napsat jen jedou v @layout

@HosipLan > to castecne souvisi s moji druhou otazkou… udelat si na to componentu… ale nevim ktery reseni je lepsi (sablona nebo komponenta)… osobne bych radsi sel pres ty sablony… ty menu nebou nijak slozity

Lopo
Člen | 277
+
0
-

a co tak nieco na sposob

{include $presenter->name.'/'.$presenter->action.'.latte'}

???

Tomas Jancik
Člen | 103
+
0
-

Lopo wrote:

a co tak nieco na sposob

{include $presenter->name.'/'.$presenter->action.'.latte'}

???

presne to jsem hledal… jen se mi nedarilo spojit ty stringy a promenne dokopy :) diky