Opzoek naar fotoalbum voor op website

Status
Niet open voor verdere reacties.

Bruce The Boss

Terugkerende gebruiker
Lid geworden
14 aug 2002
Berichten
1.945
http://www.phphulp.nl/php/script/image-manipulation/automatisch-fotoalbum-v2/668/

<?php
$map = 'fotoalbum';
$afbeeldingen = array();

$hoogte_klein = 112;
$breedte_klein = 150;

$hoogte_groot = 400;
$breedte_groot = 700;

$perpagina = 12;

if(isset($_GET['album']) && !empty($_GET['album']))
{
$tmp = explode('/',$_GET['album']);

if($tmp[0] == $map)
{
$map = str_replace(array('.', '\\', ':'), '', $_GET['album']);
}
}

if(isset($_GET['paginanr']) && !empty($_GET['paginanr']) && ctype_digit($_GET['paginanr']))
{
$paginanr = $_GET['paginanr'];
}else{
$paginanr = 1;
}

if(isset($_GET['afbeelding']) && !empty($_GET['afbeelding']))
{
$afbeelding = $_GET['afbeelding'];
}else{
$afbeelding = NULL;
}

function thumbnail($afbeelding, $type)
{

$map = $afbeelding['dirname'];
$bestandsnaam = $afbeelding['basename'];

list($type, $hoogte, $breedte) = $type;
list($breedte_origineel, $hoogte_origineel, $extensie) = getimagesize($map.'/'.$bestandsnaam);

if(!is_dir($map.'/thumbs/'))
{
mkdir($map.'/thumbs/', 0777);
chmod($map.'/thumbs/', 0777);
}

if (($breedte_origineel < $hoogte_origineel) && ($breedte > $hoogte))
{
$breedte = ($hoogte / $hoogte_origineel) * $breedte_origineel;
}else{
$hoogte = ($breedte / $breedte_origineel) * $hoogte_origineel;
}

$afbeelding = imagecreatetruecolor($breedte, $hoogte);

switch($extensie)
{
case 1:
//gif
$afbeelding_origineel = imagecreatefromgif($map.'/'.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagegif($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam);
break;
case 2:
//jpg
$afbeelding_origineel = imagecreatefromjpeg($map.'/'.$bestandsnaam);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagejpeg($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam, 80);
break;
case 3:
//png
$afbeelding_origineel = imagecreatefrompng($map.'/'.$bestandsnaam);

$background = imagecolorallocate($afbeelding, 0, 0, 0);
imagecolortransparent($afbeelding, $background); // make the new temp image all transparent
imagealphablending($afbeelding, false); // turn off the alpha blending to keep the alpha channel
imagesavealpha($afbeelding, true);
imagecopyresampled($afbeelding, $afbeelding_origineel, 0, 0, 0, 0, $breedte, $hoogte, $breedte_origineel, $hoogte_origineel);
imagepng($afbeelding, $map.'/thumbs/'.$type.'_'.$bestandsnaam);
break;
}

chmod($map.'/thumbs/'.$type.'_'.$bestandsnaam, 0777);
return TRUE;
}

$tmp = NULL;
foreach(explode('/',$map) as $tmp2)
{
echo '>> <a href="?pagina=fotoalbum&amp;album='.$tmp.$tmp2.'">'.ucfirst($tmp2).'</a> ';
$tmp = $tmp.$tmp2.'/';
}

echo '<br><br>'.PHP_EOL;

if(!$bestanden = glob($map.'/*.*'))
{
$bestanden = array();
}

foreach($bestanden as $bestand)
{
$gegevens = getimagesize($bestand);
$extensie = $gegevens['mime'];

if($extensie == 'image/jpeg' || $extensie == 'image/gif' || $extensie == 'image/png')
{
$afbeeldingen[] = $bestand;
}
}

$aantalfotos = count($afbeeldingen);

if(isset($afbeelding))
{
foreach($afbeeldingen as $id => $naam)
{
if(basename($naam) == $afbeelding)
{
$fotonr = $id;
}
}

if(isset($fotonr))
{
$afbeelding = pathinfo($afbeeldingen[$fotonr]);

if($fotonr > 0)
{
$vorige_afbeelding = pathinfo($afbeeldingen[$fotonr-1]);

echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$vorige_afbeelding['basename'].'" title="Ga naar foto '.$vorige_afbeelding['basename'].'">&lt;&lt; Vorige</a>';
}else{
echo '&lt;&lt; Vorige';
}

echo '&nbsp;&nbsp;&nbsp; Foto '.($fotonr +1).' van '.$aantalfotos.' &nbsp;&nbsp;&nbsp;';

if($fotonr < $aantalfotos -1)
{
$volgende_afbeelding = pathinfo($afbeeldingen[$fotonr+1]);

echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$volgende_afbeelding['basename'].'" title="Ga naar foto '.$volgende_afbeelding['basename'].'">Volgende &gt;&gt;</a><br>';
}else{
echo 'Volgende &gt;&gt;<br>'.PHP_EOL;
}

if(!file_exists($afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename']))
{
if(thumbnail($afbeelding, array('groot', $hoogte_groot, $breedte_groot)))
{
echo '<a href="'.$afbeelding['dirname'].'/'.$afbeelding['basename'].'" target="_BLANK"><img src="'.$afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL;
}
}else{
echo '<a href="'.$afbeelding['dirname'].'/'.$afbeelding['basename'].'" target="_BLANK"><img src="'.$afbeelding['dirname'].'/thumbs/groot_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL;
}
}else{
echo '<p>Sorry, deze foto bestaat niet!</p>';
}
}else{

if(!$mappen = glob($map.'/*', GLOB_ONLYDIR))
{
$mappen = array();
}

foreach($mappen as $album)
{
if(basename($album) != 'thumbs')
{
echo '<a href="?pagina=fotoalbum&album='.$album.'">'.ucfirst(basename($album)).'</a><br>'.PHP_EOL;
}
}

if($aantalfotos > $perpagina)
{
if ($paginanr > 1)
{
echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;paginanr='.($paginanr - 1).'" title="Ga naar pagina '.($paginanr - 1).'">&lt;&lt; Vorige</a>';
}else{
echo '&lt;&lt; Vorige';
}

echo '&nbsp;&nbsp;&nbsp; Pagina '.$paginanr.' van '.ceil($aantalfotos/$perpagina).' &nbsp;&nbsp;&nbsp;';

if ($paginanr < ceil(($aantalfotos)/$perpagina))
{
echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;paginanr='.($paginanr + 1).'" title="Ga naar pagina '.($paginanr + 1).'">Volgende &gt;&gt;</a><br>';
}else{
echo 'Volgende &gt;&gt;<br>'.PHP_EOL;
}
}

for($fotonr = (($paginanr -1) * $perpagina); $fotonr <= ((($paginanr -1) * $perpagina) + ($perpagina - 1)) && $fotonr < count($bestanden); $fotonr += 1)
{
$afbeelding = pathinfo($afbeeldingen[$fotonr]);

if(!file_exists($afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename']))
{
if(thumbnail($afbeelding, array('klein', $hoogte_klein, $breedte_klein)))
{
echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$afbeelding['basename'].'"><img src="'.$afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL;
}
}else{
echo '<a href="?pagina=fotoalbum&amp;album='.$map.'&amp;afbeelding='.$afbeelding['basename'].'"><img src="'.$afbeelding['dirname'].'/thumbs/klein_'.$afbeelding['basename'].'" title="'.$afbeelding['basename'].'" alt="'.$afbeelding['basename'].'" class="thumbs"></a>'.PHP_EOL;
}
}
}
?>
 
Yep, dit kan ik goed gebruiken maar ik heb geen site die gemaakt is in PHP maar in HTML.

Is dit dan toch gewoon te gebruiken of gaat dat dan toch niet lukken?
 
pijltjes

is het mogelijk dat er langs beide kanten een pijltje staan op naar de volgende foto te gaan ?
want dan zou ik het graag gebruiken voor mijn site
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan