@layout.latte udělat index2

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

Dobrý den
měl bych jeden hloupí dotaz chtěl bych mít 2 kostry neboli index.php a idex2.php a chci aby mě vždy vyjela jiná kostra webu . jak odkazovat na @nazev.latte nebo jak tohle řešit díky .

Rellik
Člen | 104
+
0
-

ono stačí k určitému presentru vytvořit latte, které se nebude vkládat do toho @layout.latte – tzn. nebude tam {block content} … {/block} ale uděláš tam celou stránku jako kdyby to byl index. Aspoň tak sem to vypozoroval, když sem to jednoho templatu zapomněl přidat to nastavení bloku… Jestli to tak může být ti odpoví někdo povolanější.. :)

hAssassin
Člen | 293
+
0
-

neslouzi k tomuhle metoda setLayout() v presenteru nekde v render metode pro kterou to potrebujes?

public function renderNazev() {
	$this->setLayout('nazev');
	...
}
Etch
Člen | 403
+
0
-

Možností je více.

  1. Nakopírování jiného layoutu do templates přímo do adresáře presenteru.
templates
|-----PresenterName1
|      |----ViewName1
|      |----ViewName2
|-----PresenterName2
|      |----ViewName1
|      |----ViewName2
|      |----@layout.latte
|-----PresenterName3
|      |----ViewName1
|      |----ViewName2
|      |----ViewName3
|@layout.latte
  1. Můžeš vytvořit layout s jiným jménem a v presenteru volat setLayout()
templates
|-----PresenterName1
|      |----ViewName1
|      |----ViewName2
|-----PresenterName2
|      |----ViewName1
|      |----ViewName2
|-----PresenterName3
|      |----ViewName1
|      |----ViewName2
|      |----ViewName3
|@layout.latte
|@test.latte

a v presenteru můžeš volat

$this->setLayout('test');

Pokud by si tedy volal v PresenterName1 metodu $this->setLayout('test') tak by se pro tento presenter použil layout @test.latte a ostatní presentery by nadále používaly layout @layout.latte.

Je dobré pochopit jak se layout vlastně dohledává.

app/templates/PresenterName/@layoutName.latte
app/templates/PresenterName.@layoutName.latte
app/templates/PresenterName/@layoutName.phtml
app/templates/PresenterName.@layoutName.phtml
app/templates/@layoutName.latte
app/templates/@layoutName.phtml

S tím, že jméno layoutu je defaultně „layout“ a nebo si ho změníš právě metodou setLayout()

Editoval Etch (6. 3. 2012 12:07)