Nastavenie layout-u mimo Nette2
- elvis
- Člen | 11
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
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)
- Pavel Macháň
- Člen | 282
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
Mozna by to nejak slo (vlastni makro…), ale bylo by to celkem komplikovany. Slo by to snadno, pokud by byl akceptovan tento pr
- bene
- Člen | 82
@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]);
?>