Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Skrypt Galerii (sortowanie i dzielenie na strony)
Stanleyek
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 25.01.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
modern-web
post
Post #2





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


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.

Ten post edytował modern-web 22.10.2012, 22:59:00


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
Stanleyek
post
Post #3





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 25.01.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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!

Ten post edytował Stanleyek 22.10.2012, 22:59:55
Go to the top of the page
+Quote Post
modern-web
post
Post #4





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


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


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
Stanleyek
post
Post #5





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 25.01.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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. ?>
Go to the top of the page
+Quote Post
modern-web
post
Post #6





Grupa: Zarejestrowani
Postów: 763
Pomógł: 117
Dołączył: 15.03.2010
Skąd: void

Ostrzeżenie: (0%)
-----


or z wielkich liter (OR) albo ||
gdzie masz posortowaną tablicę?


--------------------
Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
Go to the top of the page
+Quote Post
abort
post
Post #7





Grupa: Zarejestrowani
Postów: 590
Pomógł: 107
Dołączył: 25.10.2011

Ostrzeżenie: (0%)
-----


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?

Ten post edytował abort 23.10.2012, 17:59:34
Go to the top of the page
+Quote Post
Stanleyek
post
Post #8





Grupa: Zarejestrowani
Postów: 17
Pomógł: 1
Dołączył: 25.01.2010
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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..

Ten post edytował Stanleyek 23.10.2012, 18:38:41
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 11:04