Ik had voor mijn website een fotoalbum nodig... Afin, ik ga iets schrijven. Binnen enkele seconden staat er iets wat werkt. Leuk... Maar je wilt toch wat meer, ditjes, datjes etc etc
Wat doe je dan als programmeur zonder tijd? Juist, je pakt een functie van Eris (die upload functie is van hem), flikkerd wat if/elsjes erin samen met wat $_GET's en je bent klaar.
Een mooi goed werkend en automatisch fotoalbum geval. Zie hier. Het is een ranzig script onder de motorkap, echter werkt hij wel goed :+. Na een weekje krijg je wat vragen van mensen die hetzelfde willen, maar ik durf het script niet openbaar te maken want het is eigenlijk gewoon te ranzig dat ik mij ervoor schaam. Punt is dat ik er geen tijd voor heb om hem nu af te maken.
Dus mijn vraag is simpel... Is er iemand die niks te doen heeft om mijn script af te maken? Te verbeteren, optimaliseren, mooier te maken etc, Mijn voorwaarde is dat jij of ik hem daarna hier in de script database kunnen plaatsen met beide credits ;).
Wat bied ik? Een auto van de zaak en een dagje op mijn jacht. Als niemand er zin in heeft dan begrijp ik dat, en maak ik hem volgende week zelf gewoon af en dan hebben mensen nu pech :).
<?php
echo '<h1>Fotoalbum</h1>';
error_reporting(E_ALL);
$directories = array();
$bestanden = array();
$rootdir = 'C:/Server/www/i-cey/';
$map = 'fotoalbum/';
//functies
function arraySchoonmaken($array) {
foreach ($array as $index => $value) {
if (empty($value)) unset($array[$index]);
}
return $array;
}
function stripExtensie($bestand)
{
$ext = strrchr($bestand, '.');
if($ext !== false)
{
$bestand = substr($bestand, 0, -strlen($ext));
}
return $bestand;
}
function upload($tempfile,$dir,$file,$height,$width){
if(!$dim = getimagesize($tempfile)){
$error[0] = false;
$error[1] = -2;
$error[2] = 'No image file';
return $error;
}else{
//0 = width
//1 = height
//2 = type
//we want to calculte if the bigger then the maxsize if not keep it easy --> upload it
if($dim[0] < $width && $dim[1] < $height){
//move upload file
if(!file_exists($dir.$file)){
if(@move_uploaded_file($tempfile,$dir.$file)){
$error[0] = true;
$error[1] = 1;
$error[2] = 'File uploaded';
return $error;
}else{
$error[0] = false;
$error[1] = -3;
$error[2] = 'Error during move upload file';
return $error;
}
}else{
$error[0] = false;
$error[1] = -4;
$error[2] = 'File allready exsits';
return $error;
}
}else{
//we have to resize :(
if($dim[0] > $dim[1]){
$prop = $width / $dim[0];
$dims[0] = $width;
$dims[1] = round($dim[1] * $prop);
}else{
$prop = $height / $dim[1];
$dims[1] = $height;
$dims[0] = round($dim[0] * $prop);
}
//we know the new size
if($dim[2] == 2){
if(!$mimage = @imagecreatefromjpeg($tempfile)){
$error[0] = false;
$error[1] = -4;
$error[2] = 'Error';
return $error;
}
}
//we know the new size
if($dim[2] == 1){
if(!$mimage = @imagecreatefromgif($tempfile)){
$error[0] = false;
$error[1] = -4;
$error[2] = 'Error';
return $error;
}
}
//we know the new size
if($dim[2] == 3){
if(!$mimage = @imagecreatefrompng($tempfile)){
$error[0] = false;
$error[1] = -4;
$error[2] = 'Error';
return $error;
}
}
$im = @imagecreatetruecolor($dims[0],$dims[1]);
@imagecopyresampled($im, $mimage, 0, 0, 0, 0, $dims[0], $dims[1], $dim[0], $dim[1]);
if(!file_exists($dir.$file)){
if($dim[2] == 2){
if(!@imagejpeg($im,$dir.$file,70)){
$error[0] = false;
$error[1] = -5;
$error[2] = 'Imagecreate error';
return $error;
}else{
$error[0] = true;
$error[1] = 2;
$error[2] = 'Resized';
return $error;
}
}
if($dim[2] == 1){
if(!@imagegif($im,$dir.$file)){
$error[0] = false;
$error[1] = -5;
$error[2] = 'Imagecreate error';
return $error;
}else{
$error[0] = true;
$error[1] = 2;
$error[2] = 'Resized';
return $error;
}
}
if($dim[2] == 3){
if(!@imagepng($im,$dir.$file)){
$error[0] = false;
$error[1] = -5;
$error[2] = 'Imagecreate error';
return $error;
}else{
$error[0] = true;
$error[1] = 2;
$error[2] = 'Resized';
return $error;
}
}
}else{
$error[0] = false;
$error[1] = -4;
$error[2] = 'File allready exsits';
return $error;
}
imagedestroy($im);
imagedestroy($mimage);
//end resize
}
}
}
function geefExtensie($bestand)
{
return strtolower(end(explode('.',$bestand)));
}
if(isset($_GET['map']) && !empty($_GET['map']))
{
$map = str_replace(array(".", "\\", ":"), " ", $_GET['map']).'/';
}
$mappen = arraySchoonmaken(explode('/', $map));
$aantal = count($mappen)+1;
for($z = 1; $z < $aantal; $z++)
{
$temp = NULL;
for($y = 0; $y < $z; $y++)
{
if($mappen[$y] == 'fotoalbum')
{
$temp .= $mappen[$y];
}else{
$temp .= '/'.$mappen[$y];
}
}
echo ' >> <a href="?pagina=fotoalbum&map='.$temp.'">'.ucfirst($mappen[$z-1]).'</a>';
}
echo '<hr>';
if(@$dir = opendir($rootdir.$map))
{
while (false !== ($file = readdir($dir)))
{
if ($file != "." && $file != "..")
{
if(is_file($map.$file))
{
$extensie = geefExtensie($file);
$extensies = array('png','jpg','jpeg','gif');
if(in_array($extensie,$extensies))
{
$bestanden[] = $file;
}
}
if(is_dir($map.$file))
{
if($file != 'thumbs' && $file != 'thumbsgroot')
{
$directories[] = $file;
}
}
}
}
closedir($dir);
}else{
echo 'Sorry, deze directory kan ik niet openen!';
exit;
}
if(!empty($directories))
{
foreach($directories as $directory)
{
echo '<img src="afbeeldingen/folder.gif" class="centreren"><a href="?pagina=fotoalbum&map='.$map.$directory.'">'.ucfirst($directory).'</a><br>';
}
echo '<hr>';
}
if(!isset($_GET['foto']))
{
if(!empty($bestanden))
{
if(isset($_GET['paginanr']))
{
if(is_numeric($_GET['paginanr']))
{
$paginanr = $_GET['paginanr'];
}
}else{
$paginanr = 0;
}
$aantalfotos = count($bestanden);
if($aantalfotos > 10)
{
echo '<div style="text-align: center; margin: 15px;">';
if ($paginanr > 0)
{
echo '<a href="?pagina=fotoalbum&paginanr='.($paginanr - 1).'&map='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr).'"><< Vorige</a>';
}else{
echo '<< Vorige';
}
echo ' Pagina '.ceil($paginanr+1).' van '.ceil($aantalfotos/10).' ';
if ($paginanr < floor(($aantalfotos -1)/10))
{
echo '<a href="?pagina=fotoalbum&paginanr='.($paginanr + 1).'&map='.substr_replace($map,"",-1).'" title="Ga naar pagina '.($paginanr + 2).'">Volgende >></a><br>';
}else{
echo 'Volgende >><br>';
}
echo '</div>';
}
for($fotonr = $paginanr * 10; $fotonr <= (($paginanr * 10) + 9) && $fotonr < count($bestanden); $fotonr ++ )
{
if(!is_dir($map.'thumbs/'))
{
mkdir($map.'thumbs/',0755);
}
if(!file_exists($map.'thumbs/'.$bestanden[$fotonr]))
{
$test = upload($map.$bestanden[$fotonr],$map.'thumbs/',$bestanden[$fotonr],100,100);
}
if(file_exists($map.'thumbs/'.$bestanden[$fotonr]))
{
echo '<a href="?pagina=fotoalbum&map='.substr_replace($map,"",-1).'&foto='.($fotonr+1).'" style="border: 0px;"><img src="'.$map.'thumbs/'.$bestanden[$fotonr].'" class="thumbs"></a>';
}
}
}else{
if(empty($directories))
{
echo '<p>Sorry, deze map is leeg!</p>';
}
}
}else{
if(is_numeric($_GET['foto']))
{
$fotonr = $_GET['foto'];
if(file_exists($map.$bestanden[($fotonr-1)]))
{
echo '<div style="text-align: center; margin: 15px;">';
if ($fotonr > 1)
{
echo '<a href="?pagina=fotoalbum&map='.substr_replace($map,"",-1).'&foto='.($fotonr-1).'" title="Ga naar foto '.($fotonr - 1).'"><< Vorige</a>';
}else{
echo '<< Vorige';
}
echo ' Foto '.$fotonr.' van '.count($bestanden).' ';
if ($fotonr < count($bestanden))
{
echo '<a href="?pagina=fotoalbum&map='.substr_replace($map,"",-1).'&foto='.($fotonr+1).'" title="Ga naar foto '.($fotonr + 1).'">Volgende >></a><br>';
}else{
echo 'Volgende >><br>';
}
echo '</div>';
if(!is_dir($map.'thumbsgroot/'))
{
mkdir($map.'thumbsgroot/',0755);
}
if(!file_exists($map.'thumbsgroot/'.$bestanden[($fotonr-1)]))
{
$test = upload($map.$bestanden[($fotonr-1)],$map.'thumbsgroot/',$bestanden[($fotonr-1)],400,385);
}
if(file_exists($map.'thumbsgroot/'.$bestanden[($fotonr-1)]))
{
echo '<div style="text-align: center;"><a href="'.$map.$bestanden[($fotonr-1)].'" target="_blank" style="border: 0px;"><img src="'.$map.'thumbsgroot/'.$bestanden[($fotonr-1)].'" class="groot" title="'.$bestanden[($fotonr-1)].'"></a>';
$afmeeting = getimagesize($map.$bestanden[($fotonr-1)]);
echo '<br><br><a href="'.$map.$bestanden[($fotonr-1)].'" target="_blank">Origineel ('.$afmeeting[0].' x '.$afmeeting[1].')</a></div>';
}
}
}
}
?>
368 views