Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt Galerii (sortowanie i dzielenie na strony)
Forum PHP.pl > Forum > Przedszkole
Stanleyek
Mam oto taki skrypt:
  1. <div id="galeria">
  2. <ul>
  3. <?php
  4. $katalog = "foto/szafy";
  5. $katalogminiaturki = "foto/szafy";
  6. $galeria = opendir( $katalog );
  7. while ( $zdjecie = readdir( $galeria ) ){
  8.  
  9. $odczyt = pathinfo( $katalog.'/'.$zdjecie );
  10. if ( $odczyt['extension'] == 'JPG' or $odczyt['extension'] == 'jpg')
  11. {
  12. echo '<li><a href="'.$katalog.'/'.$zdjecie.'" class="highslide" onclick="return hs.expand(this)" title="Zdjęcie: '.$zdjecie.'"><img width="150" height="110" src="'.$katalogminiaturki.'/'.$zdjecie.'" alt="Zdjęcie: '.$zdjecie.'" /></a></li>';
  13. }
  14.  
  15.  
  16. }
  17. closedir($galeria);
  18. ?>
  19. </ul>
  20. <center><a href="java script:history.back()">Wstecz</a><center>
  21. </div>


Jeżeli ktoś potrafi mi odpowiedzieć, to jak go przerobić by sortowało mi zdjęcia wedle nazwy oraz dzieliło na strony typu jeżeli więcej niż 20 zdjęć podziel na strony.
Jeżeli uznacie to za nie taktowną prośbę to proszę chociaż o nakierowanie..

Z góry dziękuję za pomoc.
modern-web
Wrzuć nazwy wszystkich zdjęć w tablicę, skorzystaj z asort, po czym zwyczajnie wyświetl.
By podzielić na strony sprawdź ile jest elementów w tablicy, jeśli więcej niż 20 to dzielisz liczbę przez 20 i zaokrąglasz do góry.
Wyświetlasz ilość stron, na pierwszej stronie pierwszym elementem jest 0 index w tablicy, a ostatnim 19, także na drugiej stronie zaczynasz od 20 jedziesz do 39, na trzeciej od 40 do 59 itd...
Id początkowe na każdej stronie (pierwszy element - zdjęcie) możesz uzyskać poprzez przekazany [numer strony w _GET * limit] + 1, proste smile.gif

Pozdrawiam.
Stanleyek
Zdjęć jest około 100 i mają różne dziwne nazwy.
Nie zrozumiałem ani słowa. Ale poczytam i się pomęczę. Dziękuję za pomoc!
modern-web
Dzielenie na strony na podobnej zasadzie opisałem na innym przykładzie jakąś godzinę temu (nie wiem, czas szybko mi jakoś leci). Jakbyś nie zrozumiał tego powyżej przeczytaj również ten wątek: Temat: Porcjowanie wynikow i baza danych - powinno pomóc smile.gif
Stanleyek
Z tego co zauważyłem grzebiąc w czeluściach tajemniczego FTP'a. Strona nie jest w żaden sposób połączona z Bazą danych, na pewno zauważyłeś, że strona pobiera zdjęcia z katalogu a nie z bazy danych. Stąd moje zagwostki..

Witam udało mi się ogarnąć w necie sortowanie, wygląda to w ten sposób jak dołączyć by do tablicy brało .jpg oraz .JPG questionmark.gif?

Tak wygląda kod:
  1. <?php
  2. $katalog = "foto/szafy";
  3. $katalogminiaturki = "foto/szafy";
  4. $galeria = opendir( $katalog );
  5. while ( $zdjecie = readdir( $galeria ) ){
  6.  
  7. $odczyt = pathinfo( $katalog.'/'.$zdjecie );
  8. if ( $odczyt['extension'] == 'JPG' or $odczyt['extension'] == 'jpg')
  9. {
  10. echo '<li><a href="'.$katalog.'/'.$zdjecie.'" class="highslide" onclick="return hs.expand(this)" title="Zdjęcie: '.$zdjecie.'"><img width="150" height="110" src="'.$katalogminiaturki.'/'.$zdjecie.'" alt="Zdjęcie: '.$zdjecie.'" /></a></li>';
  11. }
  12.  
  13.  
  14. }
  15. closedir($galeria);
  16. ?>
modern-web
or z wielkich liter (OR) albo ||
gdzie masz posortowaną tablicę?
abort
zainteresuj się funkcją http://php.net/manual/en/function.strtolower.php i podobnymi.
Zapewne ".Jpg" czy ".jpG" też byś chciał, by się łapało, prawda?
Stanleyek
Sorry przedstawiłem poprzednią wersje skryptu bez sortowania...
  1. <?php
  2. $katalog = "foto/szafy";
  3. $katalogminiaturki = "foto/szafy";
  4. $pliki = glob($katalog.'/*.jpg');
  5. //lista plików trafia do tablicy
  6. $i=0;
  7. foreach($pliki as $key => $value){
  8. $tab[$i] = $value;
  9. $i++;
  10. }
  11. sort($tab);
  12. //wyświetlenie listy zgodnie z datą
  13. for($nr = 0; $nr < $i; $nr++){
  14. print '<li><a href="'.$tab[$nr].'" class="highslide" onclick="return hs.expand(this)" rel="nofollow alt="Szafy na wymiar" title="Szafy na wymiar"><img width="200" height="133" src="'.str_replace($katalog, $katalogminiaturki, $tab[$nr]).'" /></a></li>';
  15. }
  16. ?>


Dziękuję wszystkim za pomoc. Odpowiedź udało mi się znaleźć oto i ona:
  1. $pliki = array_merge (glob ($katalog . '/*.jpg'), glob ($katalog . '/*.JPG'));


Teraz została tylko kwestia paginacji..
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.