<?php
/*
Ustalamy w jakim katalogu znajduja sie zdjecia oraz
ile wierszy i kolumn bedzie tworzyc galeria jednej strony.
*/
define('KATALOG_ZDJEC','./zdjecia/kronika/');
define('WIERSZY',10);
define('KOLUMN',2);
/*
Przeczesujemy wybrana lokalizacje w poszukiwaniu plikow .jpg
i zapujemy ich nazwy w tablicy $album. Wszelkie informacje o
plikach beda teraz odczytywane z tej tablicy dzieki czemu ograniczymy
mielenie dyskiem do minimum

*/
$x=0;
foreach (glob(KATALOG_ZDJEC."*.jpg") as $zdjecie) $album[$x++]=$zdjecie;
/* Zliczamy ile fotek lacznie pojawi sie na jednej stronie oraz calkowita ich liczbe */
$na_stronie=WIERSZY*KOLUMN; $razem=count($album);
/*
Dzieki czemu mozemy wyliczyc liczbe stron. Czesc calkowita z dzielenia
liczby fotek przez liczbe zdjec na jednej stronie da laczna liczbe stron.
Jesli zostanie jakas reszta z dzielenia to znaczy ze potrzebujemy jeszcze
jednej strony dla wyswietlenie kilku ostatnich zdjec
*/
$stron=floor($razem/$na_stronie); $stron+=$razem % $na_stronie ? 1:0;
/*
Zmienna $pokaz_strone przechowuje nr. akutalnej strony do wyswietlenia.
Jej wartosc odczytywana jest z adresu strony
Jesli wartosc nie zostala ustalona
przyjmujemy ze wyswietlamy strone 1
*/
$pokaz_strone=$_GET['pokaz_strone']; if (!isset($pokaz_strone)) $pokaz_strone=1;
/*
Bedziemy odczytywac tylko te fragmenty tablicy $album ktore zawieraja
zdjecia wystepujace na danej stronie, dlatego potrzebujemy ustalic
jaki bedzie to obszar
*/
$start=($pokaz_strone-1) * $na_stronie;
$stop=($pokaz_strone==$stron) ? $razem % $na_stronie: $na_stronie; $stop+=$start;
echo "<table style='border: none'><tr>";
/* Z wybranych elementow rusyjemy tabelke */
for ($x=$start;$x<$stop;$x++){
/* Jesli osiagnieto ustalona liczbe kolumn przechodzimy do nastepnego wiersza */
if (!($x % KOLUMN)) echo "</tr><tr>";
/*
Tworzymy obrazek ktory wygenerowany zostanie przez skrypt mini.php na podstawie
przekazanej nazwy pliku
*/
echo "<td><a href=\"".$album[$x]."\" rel=\"lightbox[roadtrip]\"><img src=\"mini1.php?fotka="."{$album[$x]}\"></a>";
/*
Ponizsze linie sprawdzaja czy w katalogu ze zdjeciem istnieje taki sam
plik z roszerzeniem .txt. Jesli tak, wyswietla jego zawartosc pod zdjeciem
*/
list($info)=explode('.',basename($album[$x]));
if(file_exists(KATALOG_ZDJEC.$info.".txt")){
$plik=fopen(KATALOG_ZDJEC.$info.".txt","r");
$opis=fgets($plik);
fclose($plik);
echo "<br>$opis";
}
echo "</td>";
}
echo "</tr><table>";
/* Jesli mamy wiecej niz jedna strone wyswietlimy ich liste */
if ($stron>1){
echo "<br>";
echo "Strona: "; for($x=1;$x<=$stron;$x++) {
/* Bierzaca strone pogrubimy a pozostale beda linkami z odpowiednim adresem */
if ($pokaz_strone==$x){echo "<b> $x </b>";} else {echo "<a href=\"historia.php?pokaz_strone=$x\"> $x </a>";}
}
}
?>
Sama galeria, bez lightboxa działa bardzo dobrze, tylko miniaturki otwierają się w nowym oknie, i nie można ich przewijać. Trzeba zamknąć duże okno, i otworzyć następne zdjęcie.