$this->template->setFile(‚file.phtml‘) deaktivuje nastavení layoutu
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- Jan Tvrdík
 - Nette guru | 2595
 
Je nějaký důvod, aby volání
$this->template->setFile('file.phtml') deaktivovalo
nastavení layoutu?
Nebylo by logičtější upravit kód takto?:
if ($template instanceof /*Nette\Templates\*/IFileTemplate) {
    // content template
    if (!$template->getFile()) {
        $files = $this->formatTemplateFiles($this->getName(), $this->view);
        foreach ($files as $file) {
                if (is_file($file)) {
                        $template->setFile($file);
                        break;
                }
        }
        if (!$template->getFile()) {
                $file = str_replace(Environment::getVariable('templatesDir'), "\xE2\x80\xA6", reset($files));
                throw new BadRequestException("Page not found. Missing template '$file'.");
        }
    }
    // layout template
    if ($this->layout) {
            foreach ($this->formatLayoutTemplateFiles($this->getName(), $this->layout) as $file) {
                    if (is_file($file)) {
                            if ($this->oldLayoutMode) {
                                    $template->content = clone $template;
                                    $template->setFile($file);
                            } else {
                                    $template->layout = $template->_extends = $file;
                            }
                            break;
                    }
            }
    }
}
				
- David Grudl
 - Nette Core | 8285
 
Když použiješ setFile, tak se předpokládá, že si soubor a layout řešíš nějak po svém.

- Jan Tvrdík
 - Nette guru | 2595
 
Přesto si myslím, že mnou navrhnutá změna představuje
logičtější chování, protože pakliže mám nastaveno
$this->layout, tak očekávám, že bude fungovat. Pokud layout
z nějakého důvodu nechci, tak můžu vždycky zavolat
$this->layout = FALSE. Rozhodnutí je samozřejmě na
tobě :)