Location: PHPKode > scripts > ChiliGallery > ChiliGallery/gallery.php
<?PHP
/*
	--------------------------------------------------------
	ChiliGallery v2.5
	based on the Gallery Script of pawlita.de
	--------------------------------------------------------
	The script is protected by copyright law. All rights and
	copyrights are held by the author:
	Adam Pawlita, http://www.chiliscripts.com
	This script may be freely used and redistributed so long
	the stated copyright notices in all parts of the script before-
	hands remain. For correct operation, or damage caused by
	the operation of this script is made only if the author has no
	Warranty. Commissioning is carried out in each case
	at their own risk of the operator.
	-------------------------------------------------------
*/


// In the area of ??the script can be customized to your needs
// Design adjustments must be made in the galerie.css

$FirstDir = "gallery"; // Default path for the images directory (note the correct spelling)
$exclude ="thumb,privat"; // Excluded folders, separated by commas

$ThumbnailWidth = "160"; // The width of your Thumbnails
$ThumbnailHeight = "120"; // The height of your Thumbnails
$ThumbnailArt = "1"; // 0 => The size is specified maximum size, 1 => The specified size is maintained

$ShowWidth = "640"; 	// Maximum width of the preview image
$ShowHeight = "480"; 	// Maximum height of the preview image

$rows = 3; 	// Number of thumbnail rows
$columns = 3; 	// Number of thumbnail columns

$ShowPicName = "1";		// 1 => Pictures Name is shown below the thumbnail image, 0 => Image name is not shown.
$ShowPicNr = "1";		// View behind the category, the number of images? 1 => yes

$PopUp = "0";		// The preview image view in a popup 1 => yes, 0 => no.
$Download = "1";	// Should be offered to download the images? 1 => yes, 0 => no.

$DirSort="1";		// 1 => default sort folders alphabetically (A-Z), 0 => folder are read by date.


// From here change anything!
// From here change anything!
// From here change anything!

// get time
$start_time = microtime(true);

// read dirs
function get_dirs($dir,$ebene)
{
	global $OrdnerName, $OrdnerPfad, $DirNr, $Bilder, $ShowPicNr, $excludeArray;
	if (is_dir($dir) )
	{
	$BildNr=0;
	$fp=opendir($dir);
	$aktEbene=$ebene;
	while($datei=readdir($fp)) 
	{ 	
	if (is_dir("$dir/$datei") && $datei!="." && $datei!=".." && !in_array($datei, $excludeArray) ) 
		{	
		$DirNr++;
		$aktebene=$ebene+1;
		$vor="";
		for ($i=1; $i<$aktebene; $i++) 
			{$vor.="&nbsp;&nbsp;";}
		if ($vor <>"") $vor.="-";
		$OrdnerPfad[$DirNr]="$dir/$datei";
		$OrdnerName[$DirNr]=$vor.$datei.$nach;	
		get_dirs($dir."/".$datei,$aktebene);			
		}
		else
		{
		$ext = strtolower(strrchr("$dir/$datei", '.'));
		if ($ext=='.jpg' OR $ext=='.jpeg') 
			{ 
			$BildNr++;
			$Bilder[$DirNr][$BildNr]=$datei;
			}
		}
	}
	closedir($fp);
	} 
} 


// get variables
$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['sort'] == "1") {$PicSort="1";} else {$PicSort="0";}

$excludeArray = explode (',', $exclude);
	
get_dirs($FirstDir,0);


// sort dirs
if ($DirSort=="1") @natcasesort ($OrdnerPfad);
if ($DirSort=="0") $OrdnerPfad = array_reverse($OrdnerPfad, TRUE);


// sorf files
if ($PicSort=="1" AND count($Bilder[$dir]) > 0)
{
	natcasesort ($Bilder[$dir]);
	$neuBildNr=1;
	foreach ($Bilder[$dir] as $key => $value )
		{$Bilder[$dir][$neuBildNr]=$value;$neuBildNr++;}
}
// sort by date
if ($PicSort=="0" AND count($Bilder[$dir]) > 0)
{
	$neuBildNr=count($Bilder[$dir]);
	foreach ($Bilder[$dir] as $key => $value )
		{$Bilder[$dir][$neuBildNr]=$value;$neuBildNr--;}

}

// Prepare error message
if (count($Bilder[$dir]) <= 0)
	{
	$fehlermeldung="There are no images in this folder.";
	}
if (count($OrdnerPfad) <= 0)
	{
	$fehlermeldung="There is no folder in the Startup folder.";
	}
	
// Category output
$auswahl="";
$auswahl.="				<form name=\"auswahl\" id=\"auswahl\" class=\"kategorie\">\n";
$auswahl.="				<select name=\"auswahl\" onchange=\"MM_jumpMenu(this)\">\n";
if (count($OrdnerName) > 0)
{
foreach ($OrdnerName as $key => $val) 
{
	if ($ShowPicNr == "1") {$nach = "&nbsp;(".count($Bilder[$key]).")";} else {$nach = "";}
	if ($dir==$key) $auswahl.="				<option value=\"gallery.php?dir=$key&zeilen=$rows&sort=$PicSort\" selected>".$OrdnerName[$key].$nach."</option>\n";
	else $auswahl.="				<option value=\"gallery.php?dir=$key&zeilen=$rows&sort=$PicSort\">".$OrdnerName[$key].$nach."</option>\n";
}
}
$auswahl.="				</select>\n";
$auswahl.="				</form>\n";

// Navigation of the thumbnails
if ($show=="0"){
	$BilderProSeite=$rows*$columns; 
	$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=\"gallery.php?seite=$NextSeite&dir=$dir&zeilen=$rows&sort=$PicSort\"><img src=\"images/next.gif\" alt=\"Next\"></a>\n";
		$LastLink="<a href=\"gallery.php?seite=$MaxSeite&dir=$dir&zeilen=$rows&sort=$PicSort\"><img src=\"images/last.gif\" alt=\"Last\"></a>\n";
		}
	else
		{
		$NextLink="\n";
		$LastLink="\n";
		}
	if ($seite > 1) 
		{
		$BackLink="<a href=\"gallery.php?seite=$BackSeite&dir=$dir&zeilen=$rows&sort=$PicSort\"><img src=\"images/prev.gif\" alt=\"Prev\"></a>\n";
		$FirstLink="<a href=\"gallery.php?seite=1&dir=$dir&zeilen=$rows&sort=$PicSort\"><img src=\"images/first.gif\" alt=\"First\"></a>\n";
		}
	else
		{
		$BackLink="&nbsp;\n";
		$FirstLink="&nbsp;\n";
		}
}
// Navigation of the preview images
if ($show){
	$GalerieBilder=count($Bilder[$dir]);
	if ($show > $GalerieBilder) $show=$GalerieBilder;
	$NextSeite=$show+1;
	$BackSeite=$show-1;	
	if ($show<$GalerieBilder) 
		{
		$NextLink="<a href=\"gallery.php?seite=$seite&show=$NextSeite&dir=$dir&zeilen=$rows&sort=$PicSort\"><img src=\"images/next.gif\" alt=\"Next\"></a>\n";
		$LastLink="<a href=\"gallery.php?seite=$seite&show=$GalerieBilder&dir=$dir&zeilen=$rows&sort=$PicSort\"><img src=\"images/last.gif\" alt=\"Last\"></a>\n";
		}
	else
		{
		$NextLink="\n";
		$LastLink="\n";
		}
	if ($show > 1) 
		{
		$BackLink="<a href=\"gallery.php?seite=$seite&show=$BackSeite&dir=$dir&zeilen=$rows&sort=$PicSort\"><img src=\"images/prev.gif\" alt=\"Prev\"></a>\n";
		$FirstLink="<a href=\"gallery.php?seite=$seite&show=1&dir=$dir&zeilen=$rows&sort=$PicSort\"><img src=\"images/first.gif\" alt=\"First\"></a>\n";
		}
	else
		{
		$BackLink="&nbsp;\n";
		$FirstLink="&nbsp;\n";
		}
}


// Thumbnail output
if ($show=="0" and count($Bilder[$dir])>0){
	$Inhalt="	<table width=\"100%\" align=\"center\" class=\"thumb\">\n";
	$nr=($seite-1)*$rows*$columns;	
	for ($z=1; $z<=$rows; $z++) {
		$Inhalt.="		<tr align=\"center\" valign=\"bottom\">\n";
		for ($s=1; $s<=$columns; $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=$ShowWidth+60;
				$PopUpHoehe=$ShowHeight+150;
				$Inhalt.="				<a href=\"#\" onClick=\"Vorschau=window.open('gallery.php?dir=$dir&show=$nr&seite=$seite&zeilen=$rows&sort=$PicSort&sort=$PicSort','Vorschau','directories=no,location=no,resizable=yes,scrollbars=yes,toolbar=no,status=no,menubar=no,width=$PopUpBreite,height=$PopUpHoehe')\" >\n";
				}
				// no PopUp
				else $Inhalt.="				<a href=\"gallery.php?dir=$dir&show=$nr&seite=$seite&zeilen=$rows&sort=$PicSort&sort=$PicSort\">\n";
				
				if ($ThumbnailArt == "1") $img_size = " width=\"$ThumbnailWidth\" height=\"$ThumbnailHeight\"";
				else $img_size = "";
				
				$Inhalt.="				<img src=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=$ThumbnailWidth&h=$ThumbnailHeight&art=$ThumbnailArt\"".$img_size." alt=\" Name: $BildName\">\n";
				$Inhalt.="				</a><br>\n";
				if ($ShowPicName == "1") $Inhalt.="				$BildName<br>\n";
				if ($nr == count($Bilder[$dir]))
					{
					if ($z<=1) $s=$columns;
					$z=$rows;
					}
				}
			else $Inhalt.="&nbsp;";

			$Inhalt.="			</td>\n";		
			}
		$Inhalt.="		</tr>\n";
		}
	$Inhalt.=	"	</table>\n";
	
	$Inhalt.="	<table width=\"100%\" align=\"center\" >\n";
	$Inhalt.="		<tr align=\"center\" valign=\"top\">\n";		
// page numbers
	$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=\"gallery.php?dir=$dir&seite=$sn&zeilen=$rows&sort=$PicSort\"><span class=\"aktseitennr\">$Seitennummer</span></a> ";
		else $Seitennummern.= "<a href=\"gallery.php?dir=$dir&seite=$sn&zeilen=$rows&sort=$PicSort\">$Seitennummer</a> ";
		}
	}
	
	$Inhalt.="			<div class=\"seitennr\">$Seitennummern</div>\n";
	$Inhalt.="			</td>\n";
// sort selection
	if ($PicSort=="1") $SortLink="<a href=\"gallery.php?seite=$seite&dir=$dir&zeilen=$rows&sort=0\" title=\"Sort by Name\">a-z </a>\n";
	else  $SortLink="<a href=\"gallery.php?seite=$seite&dir=$dir&zeilen=$rows&sort=1\" title=\"Sort by Date\">new </a>\n"; 			
// footer
	$Inhalt.="			<td width=\"40%\" nowrap align=\"right\">\n";
	$Inhalt.="			<a href=\"http://www.chiliscripts.com\" target=\"_blank\">ChiliGallery</a>\n";
	$Inhalt.="			</td>\n";	
	$Inhalt.="		</tr>\n";
	$Inhalt.="	</table>\n";
}
// Output preview Image
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"));	
// Page numbers as selection
	$$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=\"gallery.php?dir=$dir&seite=$seite&show=$sn&zeilen=$rows&sort=$PicSort\"><span class=\"aktseitennr\">$Seitennummer</span></a> ";
		else $Seitennummern.= "<a href=\"gallery.php?dir=$dir&seite=$seite&show=$sn&zeilen=$rows&sort=$PicSort\">$Seitennummer</a> ";
		}
	}
//	generate content
	$auswahl="	<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=\"gallery.php?dir=$dir&seite=$seite&zeilen=$rows&sort=$PicSort\">\n";
	$Inhalt.="				<img src=\"thumb.php?thumb=".urlencode("$BildPfad/$BildName")."&w=$ShowWidth&h=$ShowHeight\" alt=\" Name: $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.="				Name: $BildName<br>\n";
	$Inhalt.="				Size: $OriginalBreite x $OriginalHoehe<br>\n";
	$Inhalt.="				Filesize: $DateiGroesse<br>\n";
	$Inhalt.="				Upload: $UploadDatum<br>\n";
	$Inhalt.="			</div>\n";
	$Inhalt.="			</td>\n";
// Picture Downloads
	if ($Download=="1")
	{	
	$Inhalt.="			<td nowrap align=\"right\">\n";
	$Inhalt.="			<div class=\"download\">\n";
	$Inhalt.="			Download:<br>\n";
	$ratio = $OriginalBreite / $OriginalHoehe;
	if (($OriginalBreite/$ThumbnailWidth) < ($OriginalHoehe/$ThumbnailHeight))
		{
		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\">".$OriginalBreite."x".$OriginalHoehe."</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>ChiliGallery</TITLE>
<link href="gallery.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="Gallery">
<table class="Main">
  <tr>
  	<td>
		<!-- Navigation -->
		<div class="navigation">
		<table align="center" width="100%">
  			<tr valign="top">
				<td width="20%" align="left" nowrap="nowrap">
					<?PHP echo $FirstLink;?>
    				<?PHP echo $BackLink;?>
				</td>
    			<td align="center" nowrap="nowrap">
<?PHP echo $auswahl;?>
				</td>
   				<td width="20%" align="right" nowrap="nowrap">
					<?PHP echo $SortLink;?>&nbsp;&nbsp;
					<?PHP echo $NextLink;?>
					<?PHP echo $LastLink;?>
				</td>
  			</tr>
		</table>
		</div>
		<!-- End Navigation -->
	</td>
  </tr>
  <tr>
	<td>
	<!-- content -->
<?PHP echo $fehlermeldung;?>	
<?PHP echo $Inhalt;?>
	<!-- End content -->
	</td>
  </tr>
</table>
<!-- End Main -->
</div>
<?PHP

// Zeit Stoppen und Ausf├╝hrdauer ausrechnen
$end_time = microtime(true);
echo "<!--".(($end_time-$start_time)*1000)." ms -->";
?>
Return current item: ChiliGallery