pouziti setLayout a setView
- 2bfree
- Člen | 248
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 | 248
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 | 248
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