Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]galeria zdjeć
Forum PHP.pl > Forum > Przedszkole
mario1506
witam, dopiero zaczynam nauke php, wiec prosze o wyrozumialosc smile.gif.
Więc mam skrypt galeri zdjec
  1. <?php
  2. function Galeria ($dir, $dir_mini, $zdjecie = array())
  3. {
  4.  
  5. $sciezka = pathinfo($_SERVER['SCRIPT_FILENAME']);
  6. $plik_skryptu = $sciezka['basename'];
  7.  
  8. if(count($zdjecie) == 0)
  9. {
  10. if(!is_dir($dir))
  11. {
  12. echo "Nie ma takiego katalogu jak $dir";
  13. }
  14. if(!is_dir($dir_mini))
  15. {
  16. echo "Nie ma takiego katalogu jak $dir_mini";
  17. }
  18.  
  19.  
  20. /*************************************
  21.  * *
  22.  * STWORZENIE TABLICY ZE ZDJECIAMI *
  23.  * *
  24.  *************************************/
  25.  
  26. $dh = opendir($dir);
  27.  
  28. $i = 1;
  29.  
  30. while($plik !== false)
  31. {
  32. $plik = readdir($dh);
  33. $czesci_pliku = pathinfo($plik);
  34. $rozszerzenie = $czesci_pliku['extension'];
  35.  
  36. // wybieranie tylko zdjec z podanego folderu
  37. if($rozszerzenie == 'jpg' || $rozszerzenie == 'png' || $rozszerzenie == 'gif' || $rozszerzenie == 'JPG' || $rozszerzenie == 'PNG' || $rozszerzenie == 'GIF' || $rozszerzenie == 'jpeg' || $rozszerzenie == 'JPEG')
  38. {
  39. $zdjecie[$i] = $plik;
  40. $i++;
  41. }
  42. }
  43.  
  44. closedir($dh);
  45.  
  46. // sortowanie zdjec alfabetycznie
  47. sort($zdjecie);
  48.  
  49. }
  50.  
  51. //ustawienie pierwszego indeksu tablicy na 1
  52. if(isset($zdjecie[0]))
  53. {
  54. $x = count($zdjecie);
  55.  
  56. while($x > 0)
  57. {
  58. $zdjecie[$x] = $zdjecie[$x - 1];
  59. $x--;
  60. }
  61. unset($zdjecie[0]);
  62. }
  63. $ile_zdjec = count($zdjecie);
  64.  
  65. if(isset($_GET['zdj']))
  66. {
  67. $zdj = $_GET['zdj'];
  68. }
  69. else
  70. {
  71. // gdy nie podano $_GET['zdj'] to nadaj zmiennej $zdj wartosc 1
  72. $zdj = 1;
  73. }
  74.  
  75. if(isset($_GET['str']))
  76. {
  77. $str = $_GET['str'];
  78. }
  79. else
  80. {
  81. // gdy nie podano $_GET['str'] to nadaj ta wartosc
  82. $str = $zdj / $ile_miniatur;
  83. if($zdj % $ile_miniatur != 0)
  84. {
  85. $str = (integer)$str + 1;
  86. }
  87. }
  88.  
  89. $prev = $zdj - 1; // numer poprzedniego zdjecia
  90. $next = $zdj + 1; // numer nastepnego zdjecia
  91.  
  92.  
  93.  
  94. /******************************************
  95.  ** **
  96.  ** WYSWIETLANIE ODPOWIEDNIEGO ZDJECIA **
  97.  ** **
  98.  ******************************************/
  99.  
  100. echo "<div id=\"n\">\n\n";
  101.  
  102. for($i = 1; $i <= $ile_zdjec; $i++) // petla ze wszystkimi zdjeciami
  103. {
  104. if($zdj == $i) // wybierz aktualne zdjecie
  105. {
  106.  
  107. // pobieranie wysokosci aktualnego obrazka
  108. $rozmiar = getimagesize($dir."/".$zdjecie[$zdj]);
  109. $wysokosc = $rozmiar[1];
  110.  
  111. if($zdj != 1) // jesli to pierwsze zdjecie to nie wyswietlaj linka do poprzedniego
  112. {
  113. echo "<a class=\"left\" style=\"height: ".$wysokosc."px;\" href=\"".$plik_skryptu."?zdj=".$prev."#n\">Wstecz</a>\n";
  114. }
  115.  
  116. $dane_pliku = pathinfo($zdjecie[$zdj]);
  117.  
  118. echo "<img src=\"".$dir."/".$zdjecie[$zdj]."\" alt=\"".$dane_pliku['filename']."\" />\n";
  119.  
  120. if($zdj != $ile_zdjec) // gdy to ostatnie zdjecie to nie wyswietlaj linka do nastepnego
  121. {
  122. echo "<a class=\"right\" style=\"height: ".$wysokosc."px;\" href=\"".$plik_skryptu."?zdj=".$next."#n\">Dalej</a>\n";
  123. }
  124. }
  125. }
  126.  
  127. /***************************
  128.  ** **
  129.  ** LISTA Z MINIATURAMI **
  130.  ** **
  131.  ***************************/
  132.  
  133. $ile_miniatur = 5; // mozna zmienic, ale trzeba pamietac o zmianie stylow CSS
  134.  
  135. $ile_stron = ($ile_zdjec / $ile_miniatur) + 1; // obliczanie ilosci stron z miniaturami
  136.  
  137. $ile_stron = (integer)$ile_stron; // gdyby liczba byla liczba float zmien na integer
  138.  
  139. $nextpage = $str + 1; // numer poprzedniej strony
  140. $prevpage = $str - 1; // numer nastepnej strony
  141.  
  142. echo "\n\n<ul id=\"miniatury\">\n";
  143.  
  144. for($i = 1; $i <= $ile_stron; $i++)
  145. {
  146. if($str == $i)
  147. {
  148. if($str != 1) // jesli to pierwsza strona z miniaturami nie wyswietlaj odnosnika do poprzedniej
  149. {
  150. echo "<li class=\"prevpage\"><a href=\"".$plik_skryptu."?zdj=".$zdj."&amp;str=".$prevpage."#n\">&lt;&lt;</a></li>\n";
  151. }
  152.  
  153. $m = ($str * $ile_miniatur) - ($ile_miniatur - 1); // aktualna miniaturka
  154.  
  155. while($m <= $str * $ile_miniatur) // wyswietlanie listy z miniaturami
  156. {
  157. echo "<li";
  158.  
  159. if($m == $zdj)
  160. {
  161. echo " class=\"aktywne_\"";
  162. }
  163.  
  164. echo "><a href=\"".$plik_skryptu."?zdj=".$m."#n\"><img src=\"".$dir_mini."/".$zdjecie[$m]."\" alt=\"".$zdjecie[$m]."\" /></a></li>\n";
  165.  
  166. if($m == $ile_zdjec) // jesli to ostatnia miniaturka to zatrzymaj petle w tym miejscu
  167. {
  168. break;
  169. }
  170.  
  171. $m++;
  172. }
  173.  
  174. if($str == $ile_stron - 1 && $ile_zdjec % $ile_miniatur == 0) // jesli liczba zdjec jest taka, ze pasuja na styk, przewij
  175. {
  176. break;
  177. }
  178. else if($str < $ile_stron) // jesli to nie jest ostatnia strona - wyeswietl linka do nastepnej
  179. {
  180. echo "<li class=\"nextpage\"><a href=\"".$plik_skryptu."?zdj=".$zdj."&amp;str=".$nextpage."#n\">&gt;&gt;</a></li>";
  181. }
  182. }
  183.  
  184. }
  185.  
  186. echo "\n</ul>\n\n";
  187. ?>
  188.  
  189. <a id="copyright" href="http://filipmarkiewicz.boo.pl">Autor galerii: Filip Markiewicz</a>
  190.  
  191. <?php
  192. echo "</div>\n";
  193. }
  194. ?>
  195.  


i strone w html, na ktorej galerie chcę wywołać, i mam z tym maly problem.
Więc pytanie jak urzyć tej galeri na mojej stronie w htmlu questionmark.gifquestionmark.gif

Tajgeer
W HTMLu nie "uruchomisz" PHP.

Nadaj plikowi rozszerzenie php, dołącz do niego plik z tą funkcją (include, require) i tam wywołaj.
mario1506
ok zadzialalo. mam jeszcze problem gdyż jako parametr funkcji przekazuje katalog ze zdjeciami oraz folder miniatur
Galeria('/fotosy'/,'/miniatury/')
Foldery sa w tym samym katalogu co plik index.php a rezultat to "Nie ma takiego katalogu jak /fotosy/"
Przypuszczam, że błędnie przekazuje parametry funkcji.

PtasiorZz
Wystarczy dodać "." o tak:

  1. Galeria('./fotosy'/,'./miniatury/');
mario1506
fakt smile.gif, wszystko dziala poza wyswietlaniem miniatur. Mam tylko 3 zdjecia. W folderze miniatury tylko jedno na próbę, niestety nie wyswietla go ;/
PtasiorZz
  1. Galeria('./fotosy','./miniatury');


Być może usunięcie "/" pomoże smile.gif
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.