Smazání souboru po vykreslení šablony

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

Ahoj všem :-)

Rád bych měl v Presenteru před vykreslením šablony příkaz pro vytvoření nového obrázku který by se v šabloně zobrazil a poté se hned smazal.

Myslel jsem že když použiju renderXXX, kde bude příkaz pro vytvoření a pak actionXXX kde bude unlink, že to bude fungovat, ale bohužel. Obrázek se z adresáře nesmaže. Vzpomněl jsem si že existuje (existovala ?) metoda afterXXX, ale ta taky nepomůže. Prosím nemáte někdo nějaký nápad jak toto vyřešit? Díky :-)

public function renderXXX() {
	    $image = Image::fromBlank(100, 200, Image::rgb(125, 0, 0));
            $image->save('pokus.png');

}

public function actionXXX() {
	unlink('pokus.png);
}

Editoval Bohosu (21. 7. 2010 13:04)

Ola
Člen | 385
+
0
-

Kód co jsi uvedl sice obrázek na začátku životního cyklu smaže, ale pak proběhne ještě render metoda která ho opět. Proč potřebuješ aby se obrázek po uložení hned smazal? Nebude lepší vytvořit presenter který obrázek bude vykreslovat (tj. send místo save) a uvést ho v src?

Bohosu
Člen | 24
+
0
-

Doplním, že vlastně ten obrázek bude vykreslen jako graf z dat uložených v databázi.
A potřebuji aby ten obrázek se vždy vygeneroval „čerstvý“ ve chvíli načtení té stránky. Zároveň na té stránce budou další údaje, texty apod.

Buď nebudu řešit mazání :-) (budu při aktualizaci ten obrázek pokaždé přepisovat) nebo jestli existuje nějaký způsob jak ho poté smazat (při opuštění presenteru)…

stromc3k
Člen | 7
+
0
-

a metodu afterRender() jsi nezkousel?

Ola
Člen | 385
+
0
-

No ideální by asi bylo vytvořit nový presenter/view který vytvoří graf a pak jej odešle na výstup – protože pokud budu znát adresu grafu, kdykoliv, kdy na ní znovu přijdu tam ten graf bude – bude i aktuální. Pak bys jej mohl naroutovat na nějakou pěknou adresu (možná bude potřeba upravit .htaccess) a vykreslovat v šabloně takto:

<img src="{plink Graph:image}" .... />

afterRender nevyhovuje. ;-)

Editoval Ola (21. 7. 2010 13:34)

Bohosu
Člen | 24
+
0
-

Dobře, díky za pomoc :-)