Nastavenie layout-u mimo Nette2

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

Používam Nette0.9 a chcel by som na tom rozbehať nové Latte. Mám však problém ako nastaviť layout „zvonku“, nie cez makro „extend“ v šablone. Je to možné? Ďakujem vopred za odpovede.

<?php
//...
$latte = new Engine();
$template = LatteTemplate($latte);
// Niekde cca v tomto mieste potrebujem nastavit layout pre sablonu $template
$template->render($file, [/* parametre */]);
//...
?>

Editoval elvis (7. 7. 2014 14:36)

Pavel Macháň
Člen | 282
+
0
-

Mno nevím jestli je ideální se snažit namontovat motor z Porsche do trabanta. Vynaložené úsilí se ti moc nevrátí. Ideální by bylo to překlopit rovnou na Nette 2.2 ale chápu, že z 0.9 na 2.2 bude dost problém.

Editoval Pavel Macháň (7. 7. 2014 17:23)

elvis
Člen | 11
+
0
-

Ja sa ale pýtam niečo úplne iné. Nejde mi o to, či klopiť na nové nette.

Editoval elvis (8. 7. 2014 0:03)

Pavel Macháň
Člen | 282
+
0
-

S Nette 0.9 ti moc lidí neporadí. Nikdo vtom už nedělá a když, tak jen z důvodu, že se jim to nevyplatí(nikdo jim to nezaplatí) přepsat.

Budeš muset přetížit https://api.nette.org/…rol.php.html#60 atd…

Editoval Pavel Macháň (8. 7. 2014 9:35)

David Matějka
Moderator | 6445
+
+1
-

Mozna by to nejak slo (vlastni makro…), ale bylo by to celkem komplikovany. Slo by to snadno, pokud by byl akceptovan tento pr

elvis
Člen | 11
+
0
-

Jj, dík, presne o toto mi šlo.

bene
Člen | 82
+
0
-

@PavelMacháň Dříve než odpovíš (navíc zbytečnou poznámkou) si prvně pořádně přečti otázku. To že chce někdo použít samostatnou komponentu Latte ve starém Nette nebo kdekoliv jinde (což byl důvod proč je Latte samostatná komponenta) nemá vůbec nic společného s otázkou, jak nastavit layout z „venku“. A všem co ti dali „like“ doporučuji to samé, neboť akorát ničíte smysl tohoto fóra

@matej21 To je přesně ono, protože nyní to lze udělat pouze tímto hookem:

<?php
namespace Nette\Application\UI

class Presenter {
	public $layoutFile;

	function findLayoutTemplateFile() {
		return $this->layoutFile;
	}
}
?>
<?php
$presenter = new Nette\Application\UI\Presenter();
$presenter->layoutFile = '/path/to/layout';
$engine = new Latte\Engine();
$engine->render('/path/to/template', ['_control' => $presenter]);
?>