Potřebuji něco jako „FileResponse do šablony“

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

Potřeboval bych podávaný (=zobrazovaný) existujíci soubor (.php, .xml a obrazky) svázat se šablonou @layout.latte – tedy aby se zobrazila moje hlavicka, menu, … a do toho zakomponovaný obsah souboru.

Nemáte někdo typ či radu ? (Vlastní response, dědičnost šablon, …)

(Důvody: ochrana souborů před stažením bez přihlášení, přeformátování z původního každý soubor jiná ves, … Souborů je cca 30.000. takže není šance na jednoduché sjednocení ručně)

Díky

Glubo
Člen | 12
+
0
-

No, uplne nejtrivialnejsi reseni by bylo mit neco jako

<?php
class FilePresenter extends BasePresenter
{
	public function renderDefault($filename)
	{
		if (!$this->validate_filename($filename)) {
			throw new Nette\Application\BadRequestException();
		};
		$this->template->file_content = file_get_contents (BASE_FILE_DIR . '/' . $filename);
	}
	private function validate_filename($filename) {
	...//zkontrolujeme, zda filename je bezpecne
	}

}
?>

a potom v sablone {!$file_content}, popr. {$file_content} pokud neverime obsahu souboru a chceme escapovat.

Ale je to asi neoptimalni reseni a pouze nastin, kudy by se slo vydat.