Nastavení default layoutu

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

Zdravim,

chci se zeptat, kde je nejvhodnější místo k (pře)nastavení defaultního layoutu? Například pokud chci namísto @layout.phtml použít @layout-debug.phtml. Lze toto nastavi v configuračním souboru, nebo v bootstrapu?

Nyní používám tento kód v BasePresenteru. Funguje, ale nevím, zda je toto řešení nejvhodnější.

public function startup()
{
	parent::startup();
	$this->setLayout('single-col');
}
natrim
Člen | 73
+
0
-

pokud umistis soubor @layout.phtml do slozky s templatama presenteru tak se pouzije misto defaultniho

Elijen
Člen | 171
+
0
-

Ale jen pro daný presenter. Já chci defaultní layout nastavit stejný pro více presenterů.

natrim
Člen | 73
+
0
-

hm v tom pripade me tedy nic lepsiho nez mit jednu zakladni bazi od ktery budes dedit ostatni

napr.

<?php
abstract class BasePresenter extends Presenter{
/*
*naky spolecny blbosti
*
*/
}

abstract class SinglePresenter extends BasePresenter{
public function startup()
{
        parent::startup();
        $this->setLayout('single-col');
}
}

abstract class MultiPresenter extends BasePresenter{
public function startup()
{
        parent::startup();
        $this->setLayout('multi-col');
}
}


?>
Elijen
Člen | 171
+
0
-

To je v podstatě přesně to, co právě dělám. Jen s rozdílem, že já přímo pro BasePresenter, ze kterého všechny ostatní (final) presentery dědím, nastavím layout single-col a u presenterů, které mají použít layout jiný ho v metodě startup přenastavím. Jen mě zajímalo, jestli to nejde nastavit globálně v configuračním souboru nebo v bootstrapu (v Zend Frameworku to tuším jde).

Panda
Člen | 569
+
0
-

Výběr layoutu řídí metoda Presenter::formatLayoutTemplateFiles(), stačí jí jen vhodně překrýt.