Autor | Zpráva | ||
---|---|---|---|
Giga Profil * |
#1 · Zasláno: 29. 12. 2009, 08:39:57
Riešim menšiu fotogalériu. Celkom sa mi páči vytvorenie galérie z obsahu adresára.
Prosím o radu, ako vytvoriť "stránkovanie". Teda keď chcem mat na jednej stránke 15 náhľadov, ako (efektívne) zistiť počet stránok? A ako vytvárať povedzme tretiu stranu náhľadov? Ďakujem. |
||
Werewolf Profil |
#2 · Zasláno: 29. 12. 2009, 09:15:24 · Upravil/a: Werewolf
V cyklu while, kterým vytahuješ fotky z adresáře, si vytvoř proměnnou (vlastně ještě před ním) a pokaždé k ní přičti (na konci cyklu).
Také v cyklu kontroluj hodnotu této proměnné. Pokud je větší než ((stránka-1)*15)+15, tak cyklus přeruš. Bylo by také jednodušší, kdybys vytahoval fotky podle názvu (dají se hromadně přejmenovat programem zvaným IfranView - Soubor -> B). Stránkování se dá udělat funkcí glob # vrací počet souborů v adresáři Ještě malý příklad: $x = ($_GET['stranka']-1)*15; $i = $x; while($i <= ($x+15)) { echo('<img src="./'.$cesta_k_fotkam.'/fotka'.$i.'.jpg" alt="Fotka">'."\n"); } echo('<h3>Stránkování</h3>'); $pocet_fotek = count(glob($cesta_k_fotkam.'/*.*')); $stranek = round($pocet_fotek, 0, PHP_ROUND_HALF_UP); # a teď jenom cyklus for vypisující stránky + odkazy na ně ...ale neručím za správnou funkčnost. A nakonec podotýkám, že by bylo mnohem jednodušší použít nějakou existující galerii. Například kolega Joker má jednu takovou. |
||
Alphard Profil |
#3 · Zasláno: 29. 12. 2009, 09:31:40
glob() nevrací počet souborů, ale jejich seznam.
Zvláště pro velké množství fotek můžete generování galerie trochu urychlit, když si do každého adresáře s fotkami automaticky vygenerujete serializované (a vhodně seřazené) pole se soubory. Pak pro výpis stačí jednoduchý for bez načítání všech souborů. |
||
Giga Profil * |
#4 · Zasláno: 30. 12. 2009, 09:50:21
Ďakujem za rady.
Alphard napísal: "...když si do každého adresáře s fotkami automaticky vygenerujete serializované (a vhodně seřazené) pole se soubory..." Ako "automaticky" vygenerovať? Galériu chcem robiť na základe obsahu adresára najmä preto, že by som sa nemusel trápiť s udržiavaním nejakej databázy obrázkov a jej aktualizácii pri pridaní obrázku do galérie. |
||
Alphard Profil |
#5 · Zasláno: 30. 12. 2009, 10:38:45
Giga:
Není to složité. Pro výpis a stránkování stejně musíte načíst soubory do pole, takže už není o moc složitější to pole ještě uložit. Stačí např. if(!file_exists("$dir/cache.txt")); { include "zpracujFotky.php"; zpracujFotky(); } $fotky = unserialize(file_get_contents("$dir/cache.txt")); // tady už se jednoduše pracuje s polem $fotky „a jej aktualizácii pri pridaní obrázku do galérie“ Jak přidáváte obrázky? a) jestli po FTP, tak byste musel smazat jeden soubor b) jestli upload v PHP, tak unlink(), jeden řádek v kódu navíc Nebo by ještě byla možnost kontrolovat stáří souboru cache.txt a pokud je starší než třeba 3 dny, vygenerovat nový. |
||
Časová prodleva: 14 let
|
0