Vlastní heleper pro obrázky (avatary) – Url

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

Vytvořil jsem si vlastní helper, který zpracovává obrázky z externí url (dokáže zpracovat i gravatar), poté je cachuje a vrací url.

{"muj@email.cz"|avatar:80}
{"http://muj.email.cz/avatar.png"|avatar}

Ale mám několik začátečnických problému.

1. URL
Vytvořená URL je ve tvaru: /var/www/nette.l/temp/cache/_Aravatar/HASH.png
Toto je problém, jelikož to znamená, že na serveru nette.l to hledá obrázek v nette.l/var/www/…
Ale vyřešil jsem to tímto:

	public function getBasePath($avatarsDir)
	{
		// Odmazání WWW_DIR (__DIR__)
		$paths = explode($this->context->parameters["wwwDir"], $avatarsDir);

		return $paths[1];
	}

Vůbec se mi nelíbí, že by byl přístup k tempu pro zobrazení.

  1. Jak vyřešit problém na který mám funkci getBasePath(..) lépe?
  2. Vadí přístup k danémku obrázku v tempu?
  3. Pokud ano (2.), tak jak byste řešili tento problém vy?

Editoval martinit (16. 6. 2012 20:05)

llook
Člen | 407
+
0
-

To se ti nelíbí správně. Možné řešení je obrázky nekešovat do tempu, ale někam do wwwDir, třeba jako to dělá Webloader.

MartinitCZ
Člen | 580
+
0
-

llook: Díky. Jednoduché řešení a přitom člověka nenapadne ;)

Ale ted ještě nějak vyřešit tu cestu k danému obrázku. Moje funkce getBasePath(..) to vyřešit dokáže, ale …

Editoval martinit (16. 6. 2012 14:53)