/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///Dobrý den, jsem rád, že jste se rozhodli vyzkoušet mojí fotogalerii.
/// autor: Jan Kosnar
/// honza.kacko@seznam.cz
/// prozatímní www : www.honzakacko.tk, patrně zde naleznete novější verze této galerie
/// verze 1.1.2 (6.3.2005)
///Pokud by se Vám moje galerie opravdu líbila a našli by jste pro ní uplatnění, prosím upozorněte mě na to, zařadím vás na seznam
/// spokojených uživatelů
///Tato galerie je volně šiřitelná, můžete jí jakkoliv pozmněnovat, avšak Vás žádám, ponechte přiloženu vždy alespoň informaci o autorovi, můj e-mail
///
///
///
///galerie umožňuje:
///sama si vytáří náhledy obrázků
///snadné procházení dvěma různými způsoby (gallery browser zobrazí vše najednou, galerie pomocí náhledů)
///řadí fotografie podle data přidání
///komentovat fotografie (každou zvlášť)
///stylopis CSS je psán přímo do souboru pro snadnou editaci
///
///
///potřebujete:
///neměnit název souboru galerie.php
///mít práva pro zápis do adresáře
///vyžaduje mít v php nainstalováno gd2
///
///
///
///
///INSTALACE:
///Nahrajte soubor galerie.php (nepřejmenovávat) do libovolného adresáře (např. GALERIE)
///V tomto adresáří vytvořte libovlné množství PODADRESÁŘŮ do kterých nahrajte své fotografie
///Galerie si sama najde všechny fotografie v podadresářích!!!!
///
///
///prosím čtěte poznámky v programu,
///
///
/// pozor: soubory v galerii jsou řazeny podle data, pokud mají dva soubory stejné datum, zobrazí se pouze jeden z nich
/// v takovém případě doporučuji použít zavolat cast tohot skriptu ktera vam vyrobi u kazdeho souboru jine datum ulozeni
/// zavolejte tedy odkaz galerie.php?id=udrzba , pozor mozna bute musec pomoci chmod nastavit spravna prava k souborum
///
///hodně štěstí
/// doporučení na závěr: odkazujete-li na svých stránkách do fotogalerie, zahrňte již cestu k prvnímu adresáři s fotkamy, např galerie.php?cesta=foto1
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>
Fotogalerie
FOTOGALERIE
///////////////////////////////////////////////NADPIS VAŠÍ FOTOGALERIE
?>
if($id == ""): ?>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$oa = array("notgal", "temp");
/// do této proměné vepište adresáře které si NEpřejete zahrnout do vaší fotogalerie, oddělujte čárkami, pište každé zvlášť do uvozovek, to samé prosím učintě ještě v části "gallery browser"
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$adresar = Dir (getcwd());
while ($polozka=$adresar->read()):
if (Is_Dir($polozka) and $polozka !="." and $polozka !=".."):
$pp[] = $polozka ;
endif;
endwhile;
$adresar->close();
$ppv = array_values(array_diff ($pp, $oa));
?>
///////////////////////////////////////////////////// MENU
echo "
adresáře:";
for ($i = 0; $i < Count ($ppv); $i++):
echo "
$ppv[$i] ";
endfor;
?>
/////
$adresar = Dir ("./$cesta");
while ($polozka=$adresar->read()):
$date = filemtime("./$cesta/" .$polozka);
$pp[$date] = $polozka;
endwhile;
$adresar->close();
ksort($pp);
$polepolozek = array_values($pp);
for ($i = 0; $i < Count ($polepolozek); $i++):
$cast = explode(".", $polepolozek[$i]);
for ($j = 0; $j < Count ($cast); $j++):
if (($cast[$j]=="jpg" or $cast[$j]=="JPG") && $cast[$j+1]!="thumb" && $cast[$j+2]!="jpeg"):
$polejpegu[] = $polepolozek[$i];
endif;
endfor;
endfor;
///
for ($i = 0; $i < Count ($polejpegu); $i++):
$puvodniobrazek=$polejpegu[$i];
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$sirka=150;
$vyska=150;
/// tyto dvě proměnné určují velikost vytvářeného náhledu
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if (!file_exists("./$cesta/$puvodniobrazek.thumb.jpeg")):
$dataobrazku = getimagesize("./$cesta/".$puvodniobrazek);
if ($sirka && ($dataobrazku[0] < $dataobrazku[1])):
$sirka = ($vyska / $dataobrazku[1]) * $dataobrazku[0];
else:
$vyska = ($sirka / $dataobrazku[0]) * $dataobrazku[1];
endif;
$nahled = ImageCreateTrueColor($sirka,$vyska);
$obrazek = ImageCreateFromJpeg("./$cesta/".$puvodniobrazek);
imagecopyResampled ($nahled, $obrazek, 0, 0, 0, 0, $sirka, $vyska, $dataobrazku[0], $dataobrazku[1]);
ImageJpeg($nahled, "./$cesta/" .$puvodniobrazek .".thumb.jpeg", 70);
$obrazek="";
endif;
endfor;
for ($i = 0; $i < Count ($polejpegu); $i++):
$puvodniobrazek=$polejpegu[$i];
$dataobrazku = getimagesize("./$cesta/".$puvodniobrazek);
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if ($dataobrazku[0] < "600"): $velkasirka=$dataobrazku[0];
else: $velkasirka="600";
endif;
/// Zde můžete nastavit velikost zobrazovaného obrázku, nyní je to 600, na vás je pouze nahradit toto číslo (2x) vámi zvoleným.
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if ($obrazek == $polejpegu[$i]):
?>
//////////////////////////////////////// odsazení vlastní fotografie
echo "

" ;
$zobdat = filemtime ("$cesta/$polejpegu[$i]");
echo "
" .(Date("H:i:s" .", " . "j. " . "m. " . "Y ", $zobdat)) ."";
endif;
endfor;
if ($obrazek != ""): ?>
komentáře
if ($odeslano=="ano"):
if ($jmeno == ""):
$jmeno = "Anonym";
endif;
if ($koment != ""):
$jmeno = "
$jmeno";
$koment = HTMLSpecialChars($koment);
$koment = Trim($koment);
$koment = Str_Replace("\n","
", $koment);
$slovo = Split("[[:blank:]]+", $koment);
for($y=0;$y
", $koment);
$koment = Str_Replace("</b>", "", $koment);
$koment = Str_Replace("<i>", "", $koment);
$koment = Str_Replace("</i>", "", $koment);
$koment = Str_Replace("<u>", "", $koment);
$koment = Str_Replace("</u>", "", $koment);
$koment = "$koment
";
$cesta2 = " \n";
$ip = "";
$write = StripSlashes($ip .$jmeno .$koment .$cesta2); //odstraneni koncu radku
if (File_Exists ("galerie-data.dat")):
$fp = FOpen ("galerie-data.dat", "r");
$zaloha = File ("galerie-data.dat");
if (Count($zaloha)>10):
copy ("galerie-data.dat", "galerie-data.dat.zaloha");
endif;
$data = FRead ($fp, FileSize("galerie-data.dat"));
FClose($fp);
endif;
$fp = FOpen ("galerie-data.dat", "w");
FWrite ($fp, $write.$data);
FClose($fp);
?> Komentář odeslán!
endif;
$data2 = File ("./galerie-data.dat");
for ($i = 0; $i < Count ($data2); $i++):
$slovo = explode(",", $data2[$i]);
for ($j = 0; $j < Count ($slovo); $j++):
if ($slovo[$j]==$cesta."-".$obrazek):
echo $data2[$i];
endif;
endfor;
endfor;
else:
$data2 = File ("./galerie-data.dat");
for ($i = 0; $i < Count ($data2); $i++):
$slovo = explode(",", $data2[$i]);
for ($j = 0; $j < Count ($slovo); $j++):
if ($slovo[$j]==$cesta."-".$obrazek):
echo $data2[$i];
endif;
endfor;
endfor;
endif;
?>
endif;
?>
/////////////////////////////////////////////////////// zde nezapomeňte změnit width pokud měníte velikost náhledů
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// V tomto odstavci můžete měnit kolik náhledů zobrazovat na stránku (v budocnu na to udělám proměnou, nyní vám znázorním co dělat
/// pokud chcete změnit počet náhledů na stránce např. na 20
///
if (!IsSet($idprispevek)):
$idprispevek=1;
endif;
$zacatek = $idprispevek*5-5; //// sem přijde 20-20
$konec = $idprispevek*5-1; /// 20-1
for ($j=$zacatek;$j<=$konec;$j++):
if ($polejpegu[$j] != ""):
echo "

";
endif;
endfor;
$strana = Ceil(Count($polejpegu)/5); /// sem 20
?>
//////////////////////////////////////////////////// upravuje polohu odkazů na jednotlivé stránky
echo "
" ."(" .($idprispevek*5-4) ."-" .($idprispevek*5).")" ." "; //// sem 20-19 a 20
for ($x=1;$x<=$strana;$x++):
echo "
" . ($x*5-4) . "-" . $x*5 . " "; ///// sem 20-19 a 20
endfor;
echo "
gallery browser ";
/// tady končí nastavení počtu na stránku
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
///Gallery browser je rozšíření, které automaticky vypisuje všechny adresáře vaší galerie a umožňuje prohlížet jejich obsah najednou.
///volá se pomocí proměnné id="galbrow", odkaz na něj tedy bude vypadat následnovně
////http://www.neco.cz/galerie.php?id=galbrow
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
?>
elseif($id == "galbrow"):
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// doporučuji do tohoto odkazu dopsat cestu k prvnímu adresáří vaší fotogalerie ?>
zpět do galerie
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$oa = array("notgal");
/// do této proměné vepište adresáře které si NEpřejete zahrnout do vaší fotogalerie, oddělujte čárkami, pište každé zvlášť do uvozovek
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
$adresar = Dir (getcwd());
while ($polozka=$adresar->read()):
if (Is_Dir($polozka) and $polozka !="." and $polozka !=".."):
$pp[] = $polozka ;
endif;
endwhile;
$adresar->close();
$ppv = array_values(array_diff ($pp, $oa));
echo "
adresáře:";
for ($i = 0; $i < Count ($ppv); $i++):
echo "
$ppv[$i] ";
endfor;
echo "
$cesta
";
$adresar2 = Dir ("./$cesta/");
while ($polozka2=$adresar2->read()):
$date = filemtime("./$cesta/" .$polozka2);
$pp2[$date] = $polozka2;
endwhile;
ksort($pp2);
$pp2 = array_values($pp2);
$data2 = File ("./galerie-data.dat");
for ($i = 0; $i < Count ($pp2); $i++):
$cast = explode(".", $pp2[$i]);
for ($j = 0; $j < Count ($cast); $j++):
if (($cast[$j]=="jpg" or $cast[$j]=="JPG") && $cast[$j+1]!="thumb" && $cast[$j+2]!="jpeg"):
echo "
";
$obrazek = $pp2[$i];
for ($k = 0; $k < Count ($data2); $k++):
$slovo = explode(",", $data2[$k]);
for ($l = 0; $l < Count ($slovo); $l++):
if ($slovo[$l]==$cesta."-".$obrazek):
echo $data2[$k];
endif;
endfor;
endfor;
echo "
Komentovat";
endif;
endfor;
endfor;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/// nasledujci skriptik resi problem se stejnymi daty u obrazku, jeho prubeh muze trvat delsi dobu v zavislosti na poctu fotografii, nezapomente
/// zadat cestu, pozor take na nastaveni "maximum execution time" ve vašem php
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
elseif($id == "udrzba"):
$adresar = Dir ("./$cesta/");
while ($polozka=$adresar->read()):
if ($polozka !="." and $polozka !=".."):
sleep(2); //// Zde může být i 1 - ušetříte tím čas....na Windows občas dělá neplechu
touch("$cesta/$polozka",time());
endif;
endwhile;
echo "hotovo";
endif;
////Opravdu jste dočetli až sem???
?>