pouziti setLayout a setView

- 2bfree
- Člen | 252
Chtěl bych se zeptat, jak se správně používají tyto metody.
pokouším se v jednom presenteru nastavit použití layoutu z jineho presenteru a ne a ne na to prijit.
<?php
class newPresenter{
...
public function actionShow(){
$this->setLayout('old.@layout');
}
...
}
?>
a vrací mi to chybu:
<?php
Layout not found. Missing template '…/templates/New/@old.@layout.phtml'.
?>
A ne a ne prijit na to, jak ho donutit, aby si precetl …/templates/old.@layout.phtml

- 2bfree
- Člen | 252
Již jsem našel řešení.
Nejprve jsem musel upravit funkci pro získání adresy layout šablon
<?php
public function formatLayoutTemplateFiles($presenter, $layout){
return array(Nette\Environment::getVariable('appDir').DS.'templates'.DS.$layout.'.phtml');
}
?>
Pak už stačilo napsat to co jsem psal na začátku:
<?php
public function actionShow(){
$this->setLayout('old.@layout');
}
?>

- Patrik Votoček
- Člen | 2221
pozor setLayout vždy přidá před název/cestu @ pokud ho tam
nechceš budeš si muset přetížit metodu formatLayoutTemplateFiles

- 2bfree
- Člen | 252
Patrik Votoček napsal(a):
pozor setLayout vždy přidá před název/cestu @ pokud ho tam nechceš budeš si muset přetížit metodu
formatLayoutTemplateFiles
Nepsal jsem to úplně čirou náhodou o zprávu před tím?

- Patrik Votoček
- Člen | 2221
sorry měl jsem to otevřené asi víc jak hodinu a pak jsem odpovídal… (takže sem tu tvou zprávu neviděl) :-D