file_exists v latte souboru

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

Ahojte, pracuji na jednom projektu a potřeboval bych vykreslit profil uživatele.
nejedná se o nic zvláštního jen mi nefunguje jedna podmínka.
Kód v latte:

{if !file_exists($basePath . '/images/players/profile/' . $searchedUser->id . '.png')}
<img src="{$basePath}/images/profile.png" alt="You!"/> // dafaultní obrázek
{else}
    <img src="{$basePath}/images/players/profile/{$searchedUser->id}.png" alt="You!"/> // custom obrázek
{/if}

I přesto, že mám ve složce … profile uložený obrázek ‚1.png‘ a chci zobrazit uživatele s id 1 (ano, ten uživatel má opravdu id 1, radši jsem si to dumpnul), tak se mi vždky podmínka vyhodnotí tak, že se zobrazí defaultní obrázek. Ale když dám pouze

<img src="{$basePath}/images/players/profile/{$searchedUser->id}.png" alt="You!"/> // custom obrázek

Tak mi to funguje, jak má.
Mohli byste mi prosím poradit?
Děkuji moc

Editoval Petr Jančálek (25. 8. 2017 19:58)

CZechBoY
Člen | 3608
+
0
-

Musis hledat cestu filesystemu a ne ve www.
Lepsi je si uz v presenteru vse sehnat a nepouzivat tyhle low level php funkce v sablone.

rkor
Člen | 62
+
0
-

Moc to s nette nesouvisí – file_exists hledá soubory na disku, ne v url.

Můžeš zkusit

{if getimagesize($baseUri . '/images/players/profile/' . $searchedUser->id . '.png')}

:-) @CZechBoY byl rychlejší

Editoval rkor (25. 8. 2017 20:26)