<?php
// individuelle Einstellungen (Funktion)
$StartOrdner = "galerie"; // Standard Pfad für das Bilder-Verzeichnis
$Verboten ="thumb,privat"; // Ordner die nicht durchsucht und angezeigt werden, durch Komma getrennt
$Titel = "Galerie"; // Die Überschrift für die Galerie
$ThumbnailBreite = "132"; // Maximale Breite Thumbnail
$ThumbnailHoehe = "99"; // Maximale Höhe Thumbnail
$ThumbnailArt = "1"; // 0=>Die angegebene Grösse ist Maximalgrösse , 1=> Die angegebene Grösse wird eingehalten
$ShowBreite = "402"; // Maximale Breite
$ShowHoehe = "435"; // Maximale Höhe
$Zeilen = 3; // Bilder untereinander
$Spalten = 3; // Bilder nebeneinander
$ShowPicName = "0"; // 1=> Bildername wird unter dem Thumbnail-Bild gezeigt, 0=>Bildername wird nicht gezeigt.
$ShowPicNr = "1"; // Soll neben der Kategrie die anzahl der Bilder Stehen? 1=>ja (Das auslesen dauert dann länger)
$PopUp = "0"; // Das Vorschaubild im PopUp anzeigen 1=>ja, 0=>nein.
$Download = "1"; // Soll Download der Bilder angeboten werden? 1=>Ja, 0=>Nein.
$DirSort="1"; // 1=> Ordner werden natürlich sortiert(Alphabetisch) A-Z, 0=>Ordner werden nach Datum ausgelesen Neu-Alt.
// hier der ganze skriptquark
// Zeit stoppen
$start_time = microtime(true);
// Verzeichnisse auslesen
function get_dirs($dir,$ebene)
{
global $OrdnerName, $OrdnerPfad, $DirNr, $Bilder, $ShowPicNr, $VerbotenArray;
if (is_dir($dir) )
{
$fp=opendir($dir);
$aktEbene=$ebene;
while($datei=readdir($fp))
{
if (is_dir("$dir/$datei") && $datei!="." && $datei!=".." && !in_array($datei, $VerbotenArray) )
{
$DirNr++;
$aktebene=$ebene+1;
$vor="";
for ($i=1; $i<$aktebene; $i++)
{$vor.=" ";}
if ($vor <>"") $vor.="-";
$OrdnerPfad[$DirNr]="$dir/$datei";
if ($ShowPicNr == "1")
{
get_files($DirNr);
$nach="";
if (count($Bilder[$DirNr]) > 0) $nach = " (".count($Bilder[$DirNr]).")";
}
$OrdnerName[$DirNr]=$vor.$datei.$nach;
get_dirs($dir."/".$datei,$aktebene);
}
}
closedir($fp);
}
}
// Bilder auslesen
function get_files($DirNr)
{
global $OrdnerPfad, $Bilder;
$BildNr=0;
$dir=$OrdnerPfad[$DirNr];
if (is_dir($dir))
{
$fp=opendir($dir);
while(false !== ($datei=readdir($fp)))
{
$ext = strtolower(strrchr("$dir/$datei", '.'));
if ($ext=='.jpg' OR $ext=='.jpeg')
{
$BildNr++;
$Bilder[$DirNr][$BildNr]=$datei;
}
}
closedir($fp);
}
}
//Variablen auslesen/setzen
$dir=""; $seite=""; $proseite="";
if ($_GET['dir'] == "") {$dir="1";} else {$dir=$_GET['dir'];}
if ($_GET['seite'] == "") {$seite="1";} else {$seite=$_GET['seite']; }
if ($_GET['show'] == "") {$show="0";} else {$show=$_GET['show']; }
if ($_GET['zeilen'] <> "") {$Zeilen=$_GET['zeilen']; }
if ($_GET['sort'] == "1") {$PicSort="1";} else {$PicSort="0";}
$VerbotenArray = explode (',', $Verboten);
get_dirs($StartOrdner,0);
get_files($dir);
// Ordner Sortieren
if ($DirSort=="1") @natcasesort ($OrdnerPfad);
if ($DirSort=="0") $OrdnerPfad = array_reverse($OrdnerPfad, TRUE);
// Bilder natürlich sortieren
if ($PicSort=="1" AND count($Bilder[$dir]) > 0)
{
natcasesort ($Bilder[$dir]);
$neuBildNr=1;
foreach ($Bilder[$dir] as $key => $value )
{$Bilder[$dir][$neuBildNr]=$value;$neuBildNr++;}
}
// Wenn nach Datum dann neuste zuerst
if ($PicSort=="0" AND count($Bilder[$dir]) > 0)
{
$neuBildNr=count($Bilder[$dir]);
foreach ($Bilder[$dir] as $key => $value )
{$Bilder[$dir][$neuBildNr]=$value;$neuBildNr--;}
}
// Fehlermeldung vorbereiten
if (count($Bilder[$dir]) <= 0)
{
$fehlermeldung="Es befinden sich keine Bilder in diesem Ordner.";
}
if (count($OrdnerPfad) <= 0)
{
$fehlermeldung="Es befinden sich keine Ordner in dem Startordner.";
}
// Kategoerieausgabe mit Zufallsbild
$auswahl="";
$vn = $OrdnerPfad[$key];
$verzeichnis = opendir($vn);
while($file = readdir($verzeichnis)) {
$s = @getimagesize($vn."/".$file);
if(in_array($s[2], array(1,2,3)))
$zufall[] = $file;
}
mt_srand((double)microtime()*1000000);
$number = mt_rand(0,count($zufall)-1);
if (count($OrdnerName) > 0)
{
foreach ($OrdnerName as $key => $val)
{
if ($dir==$key) $auswahl.=" <a href=\"index.php?inhalt=galerie&dir=$key&zeilen=$Zeilen&sort=$PicSort\" border=\"1\"><img src='".$OrdnerPfad[$key]."/".$zufall[$number]."' width='100' height='100'><b>".$OrdnerName[$key]."</b></a> - \n";
else $auswahl.=" <a href=\"index.php?inhalt=galerie&dir=$key&zeilen=$Zeilen&sort=$PicSort\"><img src='".$OrdnerPfad[$key]."/".$zufall[$number]."' width='100' height='100'>".$OrdnerName[$key]."</a> - \n";
}
}
// Navigation der Thumbnails
if ($show=="0"){
$BilderProSeite=$Zeilen*$Spalten;
$GalerieBilder=count($Bilder[$dir]);
$MaxSeite = ceil($GalerieBilder/$BilderProSeite);
if ($seite > $MaxSeite) $seite=$MaxSeite;
$NextSeite=$seite+1;
$BackSeite=$seite-1;
if ($seite<$MaxSeite)
{
$NextLink="<a href=\"index.php?inhalt=galerie&seite=$NextSeite&dir=$dir&zeilen=$Zeilen&sort=$PicSort\"><img src=\"images/next.png\" alt=\"Next\"></a>\n";
$LastLink="<a href=\"index.php?inhalt=galerie&seite=$MaxSeite&dir=$dir&zeilen=$Zeilen&sort=$PicSort\"><img src=\"images/last.png\" alt=\"Last\"></a>\n";
}
else
{
$NextLink="\n";
$LastLink="\n";
}
if ($seite > 1)
{
$BackLink="<a href=\"index.php?inhalt=galerie&seite=$BackSeite&dir=$dir&zeilen=$Zeilen&sort=$PicSort\"><img src=\"images/prev.png\" alt=\"Prev\"></a>\n";
$FirstLink="<a href=\"index.php?inhalt=galerie&seite=1&dir=$dir&zeilen=$Zeilen&sort=$PicSort\"><img src=\"images/first.png\" alt=\"First\"></a>\n";
}
else
{
$BackLink=" \n";
$FirstLink=" \n";
}
}
// Navigation der Bilder
if ($show){
$GalerieBilder=count($Bilder[$dir]);
if ($show > $GalerieBilder) $show=$GalerieBilder;
$NextSeite=$show+1;
$BackSeite=$show-1;
if ($show<$GalerieBilder)
{
$NextLink="<a href=\"index.php?inhalt=galerie&seite=$seite&show=$NextSeite&dir=$dir&zeilen=$Zeilen&sort=$PicSort\"><img src=\"images/next.png\" alt=\"Next\"></a>\n";
$LastLink="<a href=\"index.php?inhalt=galerie&seite=$seite&show=$GalerieBilder&dir=$dir&zeilen=$Zeilen&sort=$PicSort\"><img src=\"images/last.png\" alt=\"Last\"></a>\n";
}
else
{
$NextLink="\n";
$LastLink="\n";
}
if ($show > 1)
{
$BackLink="<a href=\"index.php?inhalt=galerie&seite=$seite&show=$BackSeite&dir=$dir&zeilen=$Zeilen&sort=$PicSort\"><img src=\"images/prev.png\" alt=\"Prev\"></a>\n";
$FirstLink="<a href=\"index.php?inhalt=galerie&seite=$seite&show=1&dir=$dir&zeilen=$Zeilen&sort=$PicSort\"><img src=\"images/first.png\" alt=\"First\"></a>\n";
}
else
{
$BackLink=" \n";
$FirstLink=" \n";
}
}
// Thumbnails ausgeben
if ($show=="0" and count($Bilder[$dir])>0){
$Inhalt=" <table width=\"100%\" align=\"center\" class=\"thumb\">\n";
$nr=($seite-1)*$Zeilen*$Spalten;
for ($z=1; $z<=$Zeilen; $z++) {
$Inhalt.=" <tr align=\"center\" valign=\"bottom\">\n";
for ($s=1; $s<=$Spalten; $s++) {
$nr++;
$Inhalt.=" <td nowrap align=\"center\">\n";
if ($nr <= count($Bilder[$dir]))
{
$BildPfad=$OrdnerPfad[$dir];
$BildName=$Bilder[$dir][$nr];
if ($PopUp=="1")
{
// PopUp
$PopUpBreite=$ShowBreite+60;
$PopUpHoehe=$ShowHoehe+150;
$Inhalt.=" <a href=\"#\" onClick=\"Vorschau=window.open('index.php?inhalt=galerie&dir=$dir&show=$nr&seite=$seite&zeilen=$Zeilen&sort=$PicSort&sort=$PicSort','Vorschau','directories=no,location=no,resizable=yes,scrollbars=yes,toolbar=no,status=no,menubar=no,width=$PopUpBreite,height=$PopUpHoehe')\" >\n";
}
// Kein PopUp
else $Inhalt.=" <a href=\"index.php?inhalt=galerie&dir=$dir&show=$nr&seite=$seite&zeilen=$Zeilen&sort=$PicSort&sort=$PicSort\">\n";
if ($ThumbnailArt == "1") $img_size = " width=\"$ThumbnailBreite\" height=\"$ThumbnailHoehe\"";
else $img_size = "";
$Inhalt.=" <img src=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=$ThumbnailBreite&h=$ThumbnailHoehe&art=$ThumbnailArt\"".$img_size." alt=\" Bildname: $BildName\">\n";
$Inhalt.=" </a><br>\n";
if ($ShowPicName == "1") $Inhalt.=" $BildName<br>\n";
if ($nr == count($Bilder[$dir]))
{
if ($z<=1) $s=$Spalten;
$z=$Zeilen;
}
}
else $Inhalt.=" ";
$Inhalt.=" </td>\n";
}
$Inhalt.=" </tr>\n";
}
$Inhalt.= " </table>\n";
$Inhalt.=" <table width=\"100%\" align=\"center\" >\n";
$Inhalt.=" <tr align=\"center\" valign=\"top\">\n";
// Seitennummern
$Inhalt.=" <td width=\"40%\" nowrap align=\"left\">\n";
$zahlen="5";
for ($sn=1; $sn<=$MaxSeite; $sn++)
{
$Seitennummer="";
if ($sn==1 and $seite>(($zahlen-1)/2)+1 and $MaxSeite>$zahlen) $Seitennummer="$sn...";
else if ($sn==1) $Seitennummer="$sn";
if ($sn > 1 and $sn < $MaxSeite)
{
if ($sn >= $seite-((($zahlen-1)/2)-1) and $sn <= ($seite+((($zahlen-1)/2)-1))) $Seitennummer="$sn";
else
{
if ($seite<=((($zahlen-1)/2)+1) and $sn<$zahlen) $Seitennummer="$sn";
if ($seite>$MaxSeite-(($zahlen-1)/2) and $sn>$MaxSeite-($zahlen-1)) $Seitennummer="$sn";
}
}
if ($sn==$MaxSeite and $seite <= $MaxSeite-((($zahlen-1)/2)+1) and $MaxSeite>$zahlen) $Seitennummer="...$MaxSeite";
else if ($sn==$MaxSeite) $Seitennummer="$MaxSeite";
if ($Seitennummer <> "")
{
if ($Seitennummer == $seite) $Seitennummern.= "<a href=\"index.php?inhalt=galerie&dir=$dir&seite=$sn&zeilen=$Zeilen&sort=$PicSort\"><span class=\"aktseitennr\">$Seitennummer</span></a> ";
else $Seitennummern.= "<a href=\"index.php?inhalt=galerie&dir=$dir&seite=$sn&zeilen=$Zeilen&sort=$PicSort\">$Seitennummer</a> ";
}
}
$Inhalt.=" <div class=\"seitennr\">$Seitennummern</div>\n";
$Inhalt.=" </td>\n";
$Inhalt.=" </tr>\n";
$Inhalt.=" </table>\n";
}
// Vorschaubild ausgeben
if($show>0)
{
$SortLink="";
$BildPfad=$OrdnerPfad[$dir];
$BildName=$Bilder[$dir][$show];
$DateiGroesse = filesize("$BildPfad/$BildName");
$DateiGroesse = number_format($DateiGroesse/1024, 0, ",", ".")." kB";
$Bilddaten = getimagesize("$BildPfad/$BildName");
$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$UploadDatum = date("d.m.Y H:i", filemtime("$BildPfad/$BildName"));
// Seitennummern als auswahl
$$Seitennummern="";
$zahlen="9";
$MaxBilder=count($Bilder[$dir]);
for ($sn=1; $sn<=count($Bilder[$dir]); $sn++)
{
$Seitennummer="";
if ($sn==1 and $show>(($zahlen-1)/2)+1 and $MaxBilder>$zahlen) $Seitennummer="$sn...";
else if ($sn==1) $Seitennummer="$sn";
if ($sn > 1 and $sn < $MaxBilder)
{
if ($sn >= $show-((($zahlen-1)/2)-1) and $sn <= ($show+((($zahlen-1)/2)-1))) $Seitennummer="$sn";
else
{
if ($show<=((($zahlen-1)/2)+1) and $sn<$zahlen) $Seitennummer="$sn";
if ($show>$MaxBilder-(($zahlen-1)/2) and $sn>$MaxBilder-($zahlen-1)) $Seitennummer="$sn";
}
}
if ($sn==$MaxBilder and $show <= $MaxBilder-((($zahlen-1)/2)+1) and $MaxBilder>$zahlen) $Seitennummer="...$MaxBilder" ;
else if ($sn==$MaxBilder) $Seitennummer=$MaxBilder;
if ($Seitennummer <> "")
{
if ($Seitennummer == $show) $Seitennummern.= "<a href=\"index.php?inhalt=galerie&dir=$dir&seite=$seite&show=$sn&zeilen=$Zeilen&sort=$PicSort\"><span class=\"aktseitennr\">$Seitennummer</span></a> ";
else $Seitennummern.= "<a href=\"index.php?inhalt=galerie&dir=$dir&seite=$seite&show=$sn&zeilen=$Zeilen&sort=$PicSort\">$Seitennummer</a> ";
}
}
// ende Seitennummern
$Inhalt=" <div align=\"center\" class=\"seitennr\">$Seitennummern</div>\n";
$Inhalt.=" <table align=\"center\" class=\"show\">\n";
$Inhalt.=" <tr align=\"center\" valign=\"top\">\n";
$Inhalt.=" <td nowrap align=\"center\">\n";
if ($PopUp=="1") $Inhalt.=" <a href=\"javascript:window.close()\">\n";
else $Inhalt.=" <a href=\"index.php?inhalt=galerie&dir=$dir&seite=$seite&zeilen=$Zeilen&sort=$PicSort\">\n";
$Inhalt.=" <img src=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=$ShowBreite&h=$ShowHoehe\" alt=\" Bildname: $BildName\">\n";
$Inhalt.=" </a><br>\n";
$Inhalt.=" </td>\n";
$Inhalt.=" </tr>\n";
$Inhalt.= "</table>\n";
$Inhalt.=" <table width=\"100%\" align=\"center\" >\n";
$Inhalt.=" <tr align=\"center\" valign=\"top\">\n";
$Inhalt.=" <td nowrap align=\"left\">\n";
$Inhalt.=" <div class=\"info\">\n";
$Inhalt.=" Bildname: $BildName<br>\n";
$Inhalt.=" Bildgrösse: $OriginalBreite x $OriginalHoehe<br>\n";
$Inhalt.=" Dateigrösse: $DateiGroesse<br>\n";
$Inhalt.=" Upload Datum: $UploadDatum<br>\n";
$Inhalt.=" </div>\n";
$Inhalt.=" </td>\n";
// Bild Downloads
if ($Download=="1")
{
$Inhalt.=" <td nowrap align=\"right\">\n";
$Inhalt.=" <div class=\"download\">\n";
$Inhalt.=" Bild Download:<br>\n";
$ratio = $OriginalBreite / $OriginalHoehe;
if (($OriginalBreite/$ThumbnailBreite) < ($OriginalHoehe/$ThumbnailHoehe))
{
if ($OriginalHoehe > "640") $Inhalt.=" <a href=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=".floor(640*$ratio)."&h=640\" target=\"_blank\">".floor(640*$ratio)."x640</a><br>\n";
if ($OriginalHoehe > "800") $Inhalt.=" <a href=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=".floor(800*$ratio)."&h=800\" target=\"_blank\">".floor(800*$ratio)."x800</a><br>\n";
if ($OriginalHoehe > "1024") $Inhalt.=" <a href=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=".floor(1024*$ratio)."&h=1024\" target=\"_blank\">".floor(1024*$ratio)."x1024</a><br>\n";
if ($OriginalHoehe > "1280") $Inhalt.=" <a href=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=".floor(1280*$ratio)."&h=1280\" target=\"_blank\">".floor(1280*$ratio)."x1280</a><br>\n";
}
else
{
if ($OriginalBreite > "640") $Inhalt.=" <a href=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=640&h=".floor(640/$ratio)."\" target=\"_blank\">640x".floor(640/$ratio)."</a><br>\n";
if ($OriginalBreite > "800") $Inhalt.=" <a href=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=800&h=".floor(800/$ratio)."\" target=\"_blank\">800x".floor(800/$ratio)."</a><br>\n";
if ($OriginalBreite > "1024") $Inhalt.=" <a href=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=1024&h=".floor(1024/$ratio)."\" target=\"_blank\">1024x".floor(1024/$ratio)."</a><br>\n";
if ($OriginalBreite > "1280") $Inhalt.=" <a href=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=1280&h=".floor(1280/$ratio)."\" target=\"_blank\">1280x".floor(1280/$ratio)."</a><br>\n";
}
$Inhalt.=" <a href=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=$OriginalBreite&h=$OriginalHoehe\" target=\"_blank\">Originalgrösse</a><br>\n";
$Inhalt.=" </div>\n";
$Inhalt.=" </td>\n";
}
$Inhalt.=" </tr>\n";
$Inhalt.=" </table>\n";
}
?>
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<HTML>
<HEAD>
<TITLE><?=$Titel?></TITLE>
<link href="css/galerie.css" rel="stylesheet" type="text/css">
</HEAD>
<script type="text/JavaScript">
<!--
function MM_jumpMenu(selObj){
eval("parent.location='"+selObj.options[selObj.selectedIndex].value+"'");
}
//-->
</script>
<!-- Main -->
<div id="galerie">
<table class="Main">
<tr valign="top">
<td width="100%" align="left" valign="top"><?=$auswahl;?></td></tr><tr>
<!-- Navigation -->
<div class="navigation">
<td width="50" height="25" align="left" nowrap="nowrap">
<?=$FirstLink;?>
<?=$BackLink;?>
</td>
<td align="center" nowrap="nowrap">
</td>
<td width="50" align="right" nowrap="nowrap">
<?=$NextLink;?>
<?=$LastLink;?>
</td>
</tr>
</div>
<tr>
<td colspan="3" valign="top" align="left">
<?=$fehlermeldung;?>
<?=$Inhalt;?>
</td>
</tr>
</table>
<!-- Main Ende -->
</div>
<?PHP
// Zeit Stoppen und Ausführdauer ausrechnen
$end_time = microtime(true);
echo "<!-- ".(($end_time-$start_time)*1000)." ms -->";
?>