|
include ("menuhorni.php");
include ("menulevy.php")
?>
function loadFolder($folder) {
$handle = opendir($folder);
$j=0;
while ($soubor=readdir($handle)) {
@$overeni_nahledu=GetImageSize($folder.PREFIX.$soubor);
@$overeni=GetImageSize($folder.$soubor);
if ( $soubor != "." && $soubor != ".." && $overeni[2]==2
&& substr($soubor, 0, strlen(PREFIX)) != PREFIX) {
$obrazky[$j][t]=$folder.PREFIX.$soubor;
$obrazky[$j][f]=$folder.$soubor;
$j++;
}
}
return $obrazky;
}
/** setridi pole podle nazvu souboru s nahledy
*/
function sortPictures(&$obrazky) {
usort(&$obrazky, 'cmp');
}
/** funkce tridici pole s obrazky
*/
function cmp ($a, $b) {
if ($a['t'] == $b['t']) {
return 0;
}
return ($a > $b) ? 1 : -1;
}
/** vytvori pole obsahujici predchazejici
* a nasledujici obrazek soucasne zobrazeneho
*/
function findPictures(&$obrazky, $cur) {
for ($i = 0; $i < count($obrazky); $i++) {
if ($obrazky[$i]['f'] == $cur) {
return array($obrazky[$i-1]['f'], $cur, $obrazky[$i+1]['f'], $i);
}
}
}
/** bezpecnostni opatreni proti utoku
* podvrzeni nezadouciho adresare
*
* POZNAMKA: hodnota parametru @param folder musi by vzdy podadresar
* adresare obsahujiciho soubor, kam includujeme foto.php,
* tedy v dane ceste se nesmi objevit retezec ".."
*/
function testFolder($folder) {
if (!(strpos($folder, '..') === false)) {
die(' \n";
?>
include ("menudolni2.php");
?>
Podvrzená hodnota parametru FOLDER èi IMG v URL.'); } } // ---------------------------------------- //zacatek generovani fotogalerie echo "\n";
$setting = "config.xml"; //nastaveni souboru s nastavenim
//nastaveni adresare s fotkama
if (isset($_REQUEST["img"])) {
$folder = dirname($_REQUEST["img"]);
} else {
$folder = $_REQUEST["folder"];
}
//pokud je relativni cesta k adresari bez koncoveho lomitka,
//tak ho tam pridej
if (substr($folder, strlen($folder)-1)!="/") {
$folder = $folder."/";
}
//otestuje folder proti podvrzeni cesty
testFolder($folder);
//nacteni konstant z xml souboru
include("./xml.php"); //nacteni xml parseru
@$chyba = config($folder.$setting); //pokud nebyl config.xml nalezen, tak nastav hodnoty explicitne
//implicitni nastaveni promenych z config.xml
(!defined("THUMB_NUM"))?define("THUMB_NUM","9"):""; //9 nahledu na stranku
(!defined("ROW_THUMB_NUM"))?define("ROW_THUMB_NUM","3"):""; // 3 nahledy na radku
(!defined("PREFIX"))?define("PREFIX","tn_"):""; //prefix souboru s nahledy
(!defined("DESC_FILE"))?define("DESC_FILE","popisky.txt"):""; //nazev souboru s popiskami
(!defined("SHOW_DESC"))?define("SHOW_DESC","1"):""; // zobrazovat popisky u fotek
(!defined("SHOW_THUMB_DESC"))?define("SHOW_THUMB_DESC","1"):""; // zobrazovat popisky u nahledu
(!defined("IMPLICIT_DESC"))?define("IMPLICIT_DESC","obrázek"):""; // implicitni popiska
(!defined("GALERY_NAME"))?define("GALLERY_NAME",""):""; // nazev galerie
(!defined("DATE"))?define("DATE",""):""; // datum vytvoreni fotek
(!defined("AUTHOR"))?define("AUTHOR",""):""; // autor fotek
(!defined("NOTE"))?define("NOTE",""):""; //poznamka k fotogalerii
(!defined("NOTE2"))?define("NOTE2",""):""; //poznamka k fotogalerii2
(!defined("CSS"))?define("CSS","0"):""; //vlozit soubor s definici kaskadovych stylu 0,1
//soubor se CSS, to bych ale odstranil a dal primo do
//hlavni stranky do \n";
}
// pokud soubor s popiskama neexistuje tak nepopisuj
if (file_exists($folder.DESC_FILE)) {
$popisovat = 1;
} else {
$popisovat = 0;
}
// nacteni popisku ze souboru do asociativniho pole,
//index = nazev souboru
if ($popisovat == 1) {
$popisky_pole = file ($folder.DESC_FILE);
for ($i=0; $i \n";
// pokud neni zobrazen velky obrazek, generuj nahledy
if (!isset($img)) {
//nacte a setridi pole obrazku ze zadaneho adresare
$obrazky = loadFolder($folder);
sortPictures($obrazky);
if (!isset($dalsi)) {
$dalsi = THUMB_NUM; //pocatecni iniciace
}
echo "".GALLERY_NAME."\n":"\n"; echo (NOTE != "" && defined("NOTE"))?"".NOTE." \n":"\n"; echo (NOTE2 != "" && defined("NOTE2"))?"".NOTE2." \n":"\n"; echo (AUTHOR != "" && defined("AUTHOR"))?"Autor: ".AUTHOR." \n":"\n"; echo (DATE != "" && defined("DATE"))?"Datum: ".DATE." \n":"\n"; echo "\n";
$i = $dalsi - THUMB_NUM; // i pocita kolikaty obrazek se ma zobrazit
$thumb_radek = 1; // inicializace poctu nahledu na radku
// generuje radky s nahledy
echo " \n";
echo "\n";
while ($i \n";
echo "\n";
echo "\n";
echo " \n";
$i++;
$thumb_radek++;
} else {
echo "$title \n"; } echo "\n";
$thumb_radek = 1;
}
}
if (THUMB_NUM/ROW_THUMB_NUM != 0) {
echo " \n";
}
echo "\n";
$zobrazit_zpet = $dalsi - THUMB_NUM;
if ($zobrazit_zpet > 0) {
echo "";
}
$zobrazit_tam = $dalsi + THUMB_NUM;
if ($zobrazit_tam < count($obrazky)+ THUMB_NUM) {
echo "";
}
echo " \n";
echo "";
for ($i=THUMB_NUM, $str=1; $i ";
//################################################################################################
// zobrazeni plneho obrazku
} else {
//nacte a setridi pole obrazku ze zadaneho adresare
$obrazky = loadFolder($folder);
sortPictures($obrazky);
//vytvori podobrazkovou navigaci
$navigace = findPictures($obrazky, $img);
//vytvori odkaz na seznam nahledu
$dalsi = $navigace["3"];
$dalsi = ($dalsi==0)?1:$dalsi;
while ($dalsi%THUMB_NUM != 0) {
$dalsi++;
}
// nacteni popisku pro velky obrazek
$path = basename($img);
if ($description[$path]=="") {
$title=IMPLICIT_DESC;
$popisovat=0;
} else {
$title=$description[$path];
$popisovat=1;
}
echo "\n";
echo " \n";
//zobrazi navigacni tlacitka
echo "\n \n";
echo " \n";
}
echo "$title \n"; echo "\n";
if (isset($navigace[0])) {
echo "\n";
}
echo "\n";
if (isset($navigace[2])) {
echo "\n";
}
echo " ";
}
//############################################################################################
echo " |