Ik heb op mijn website een fotoalbum.
Het fotoalbum script dat ik op internet heb gevonden werkt goed.
Echter zoals je ziet bij deze url gaat het fout als je teveel albums plaatst.
Wat ik wil is er meerdere kolommen zodat ik meer albums kwijt kan.
Wie weet waar ik dit kan aanpassen of is het onmogelijk met dit script
Het php script bestaat uit 2 bestanden
show_foto
fotoalbum
Het fotoalbum script dat ik op internet heb gevonden werkt goed.
Echter zoals je ziet bij deze url gaat het fout als je teveel albums plaatst.
Wat ik wil is er meerdere kolommen zodat ik meer albums kwijt kan.
Wie weet waar ik dit kan aanpassen of is het onmogelijk met dit script
Het php script bestaat uit 2 bestanden
show_foto
PHP:
<?php
///////////////////////////////////////////////
// show_foto.php //
///////////////////////////////////////////////
//
?>
<html>
<head>
<title> </title>
</head>
<body link="#000000" vlink="#000000" alink="#000000" font face="Verdana" size="1" bgcolor="#FFFFFF" style=" margin-left: 8px;
margin-right: 8px;
margin-top: 8px;
margin-botom: 8px;"
>
<div align="center">
<?php
// Is er om een specifiek album gevraagd...?
if (isset($_GET['album'])) {
$album = $_GET['album'];
} else {
echo "<H1> Fout ! </H1>\n";
echo "<p>Geen album aangevraagd.</p>\n";
echo "</body></html>\n";
exit;
}
// Is er een niet bestaand album gevraagd...?
if ($album != "" && !is_dir($album)) {
// Foutmelding weergeven
echo "<H1>Fout:</H1>\n";
echo "<p>Het door u gevraagde album bestaat niet.</p>\n";
echo "</body></html>\n";
exit;
}
if (isset($_GET['fotonr'])) {
$fotonr = $_GET['fotonr'];
} else {
$fotonr = 0;
}
// indexen op nul zetten
$aantal_fotos = 0;
// Huidige directory openen
$mydir = opendir($album);
// Alle bestanden in de huidige directory doorlopen
while ($filename = readdir($mydir)) {
// Alle plaatjes in array opslaan
if (is_file ($album."/".$filename) && eregi("\.jpg$|\.jpeg$|\.gif$|\.bmp$|\.png$", $filename)) {
$foto[$aantal_fotos] = $filename;
$aantal_fotos++;
}
}
// Directory weer sluiten...
closedir($mydir);
// Foto's pagina weergeven
if ($aantal_fotos == 0) {
// Foutmelding weergeven
echo "<H1>Fout:</H1>\n";
echo "<p>Er bestaan geen foto's in dit album...</p>\n";
echo "</body></html>\n";
exit;
}
if ($fotonr > $aantal_fotos) {
// Foutmelding weergeven
echo "<H1>Fout:</H1>\n";
echo "<p>Gevraagde foto bestaat niet...</p>\n";
echo "</body></html>\n";
exit;
}
if ($fotonr < 0) {
// Foutmelding weergeven
echo "<H1>Fout:</H1>\n";
echo "<p>Gevraagde foto bestaat niet...</p>\n";
echo "</body></html>\n";
exit;
}
// sorteren op alfabet...
sort ($foto);
ClearStatCache();
// Afmetingen van foto bepalen...
$size = GetImageSize("$album/$foto[$fotonr]");
$size[0] = $size[0] + 35;
$size[1] = $size[1] + 85;
echo "<script type=\"text/javascript\" language=\"JavaScript\">\n";
echo "<!--\n";
echo "\twindow.resizeTo($size[0],$size[1]);\n";
echo "//-->\n";
echo "</script>\n";
// Extensie van bestand afhakken, en daarna alle "_" vervangen door " "
$display = eregi_replace(".jpg|.jpeg|.gif|.bmp|.png", "", $foto[$fotonr]);
$display = eregi_replace("_", " ", $display);
echo "<table border=0>\n";
echo "<tr><td colspan=2>\n";
echo "<img src=\"$album/$foto[$fotonr]\" />\n";
echo "</td></tr>\n";
$nextfoto = ($fotonr + 1);
$prevfoto = ($fotonr - 1);
// bepalen of er wel of geen volgende en vorige moeten worden weergegeven...
if ($nextfoto < $aantal_fotos) {
$volgende = "<a href=?album=$album&fotonr=$nextfoto>Volgende foto </a>";
} else {
$volgende = " ";
}
if ($fotonr != 0) {
$vorige = "<a href=?album=$album&fotonr=$prevfoto>Vorige foto </a>";
} else {
$vorige = " ";
}
// Footer, dit staat onder de tabel.
echo "<tr><td align=right width=50%> $vorige </td>\n";
echo "<td align=left width=50%> $volgende </td>\n";
echo "</tr>\n";
echo "</table>\n";
?>
</div>
</body>
</html>
fotoalbum
PHP:
<html>
<head>
<title> </title>
</head>
<SCRIPT TYPE="text/javascript">
<!--
function newImage(arg) {
if (document.images) {
rslt = new Image();
rslt.src = arg;
return rslt;
}
}
function changeImages() {
if (document.images && (preloadFlag == true)) {
for (var i=0; i<changeImages.arguments.length; i+=2) {
document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
}
}
}
var preloadFlag = false;
function preloadImages() {
if (document.images) {
Geluid_over = newImage("afbeeldingen/trm_12.jpg");
Licht_over = newImage("afbeeldingen/trm_16.jpg");
Tarieven_over = newImage("afbeeldingen/trm_19.jpg");
Bruiloften_over = newImage("afbeeldingen/trm_22.jpg");
Artiesten_over = newImage("afbeeldingen/trm_25.jpg");
DJ_over = newImage("afbeeldingen/trm_28.jpg");
Thema_over = newImage("afbeeldingen/trm_31.jpg");
Gastenboek_over = newImage("afbeeldingen/trm_34.jpg");
Fotoalbum_over = newImage("afbeeldingen/trm_37.jpg");
Contact_over = newImage("afbeeldingen/trm_40.jpg");
Referenties_over = newImage("afbeeldingen/trm_43.jpg");
preloadFlag = true;
}
}
// -->
</SCRIPT>
<?php
///////////////////////////////////////////////
// fotoalbum.php //
///////////////////////////////////////////////
// Is er om een specifiek album gevraagd...?
if (isset($_GET['album'])) {
$album = $_GET['album'];
} else {
$album = ".";
}
// Is er om een specifieke pagina gevraagd...?
if (isset($_GET['page'])) {
$page = $_GET['page'];
} else {
$page = 0;
}
// Configuratie
$cols = "8"; // Aantal kolommen
$rows = "4"; // aantal rijen
$max_thumb_width = "80"; // Maximale breedte van een thumbnail
$max_thumb_height = "60"; // Maximale hoogte van een thumbnail
$thumbs = "$album/thumbs"; // directory waar thumbnails in staan
$header = eregi_replace("_", " ", $album);
if ($cols % 2 == 0) {
$colspan = "";
} else {
$colspan = "colspan=2";
}
?>
<body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" background="../afbeeldingen/achtergrond.gif" link="#000000" vlink="#000000" alink="#000000">
<table border="0" width="100%" height="100%" id="table1">
<tr>
<td align="center"><table id="table2" width="991" height="641" border="0" cellpadding="0" cellspacing="0">
<tr>
<td colspan="11">
<font face="Calibri">
<a href="../index.html">
<img src="../afbeeldingen/horstmedia_01.gif" width="990" height="72" border="0" alt=""></a></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="1" height="72" alt=""></font></td>
</tr>
<tr>
<td rowspan="5">
<font face="Calibri">
<img src="../afbeeldingen/horstmedia_02.gif" width="27" height="163" alt=""></font></td>
<td colspan="10">
<font face="Calibri">
<img src="../afbeeldingen/horstmedia_03.gif" width="963" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="1" height="1" alt=""></font></td>
</tr>
<tr>
<td colspan="2">
<font face="Calibri">
<img src="../afbeeldingen/horstmedia_04.gif" width="75" height="27" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/website2_03.gif" width="81" height="27" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/horstmedia_06.gif" width="1" height="27" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/horstmedia_07.gif" width="101" height="27" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/horstmedia_08.gif" width="42" height="27" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/horstmedia_09.gif" width="168" height="27" alt=""></font></td>
<td colspan="3">
<font face="Calibri">
<img src="../afbeeldingen/horstmedia_10.gif" width="495" height="27" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="1" height="27" alt=""></font></td>
</tr>
<tr>
<td rowspan="6">
<font face="Calibri">
<img src="../afbeeldingen/website_11.gif" width="2" height="540" alt=""></font></td>
<td colspan="8" rowspan="4" background="../afbeeldingen/website_12.gif" valign="top">
<font face="Calibri">
<?php
// Is er een niet bestaand album gevraagd...?
if ($album != "" && !is_dir($album)) {
// Foutmelding weergeven
echo "<h1>Fout:</h1>\n";
echo "<p>Het door u gevraagde album bestaat niet. Selecteer een album uit de lijst hieronder.</p>\n";
// Album leegmaken, zodat album-overzicht wordt weergegeven
$album = ".";
}
// Huidige directory openen
$mydir = opendir($album);
// indexen op nul zetten
$aantal_subdirs = 0;
$aantal_fotos = 0;
// Alle bestanden in de huidige directory doorlopen
while ($filename = readdir($mydir)) {
// Alle subdirectories in array opslaan
if (is_dir($album."/".$filename) && $filename != "." && $filename != ".." && $filename != "thumbs") {
$subdir[$aantal_subdirs] = $filename;
$aantal_subdirs++;
}
// Alle plaatjes in array opslaan
if (is_file ($album."/".$filename) && eregi("\.jpg$|\.jpeg$|\.gif$|\.bmp$|\.png$", $filename)) {
$foto[$aantal_fotos] = $filename;
$aantal_fotos++;
}
}
// Directory weer sluiten...
closedir($mydir);
// Directory structuur vastleggen in array...
$map = $album;
$i = 2;
$directory_tree[0] = $map;
while ($map != ".") {
$last_slash_pos = strlen($map) - strpos(strrev($map), "/");
$map = substr ($map, 0, $last_slash_pos - 1);
$directory_tree[$i] = $map;
$i++;
}
// Rij met links naar albumoverzicht/subalbums weergeven....
for ($i = count ($directory_tree) - 2 ; $i >= 0; $i--) {
$last_slash_pos = strlen($directory_tree[$i]) - strpos(strrev($directory_tree[$i]), "/");
$directory_name = substr($directory_tree[$i], $last_slash_pos);
$directory_name = eregi_replace("_", " ", $directory_name);
if ($directory_name != "") {
echo " > ";
}
echo "<a href=\"?album=$directory_tree[$i]\">";
if ($directory_name != "") {
echo $directory_name;
} else {
echo "Fotoalbums";
}
echo "</a>";
}
echo "<hr><br>";
// Subalbums weergeven :
if ($aantal_subdirs > 0) {
sort ($subdir);
echo "<table>\n";
for ($i =0; $i < $aantal_subdirs; $i++) {
$directory_name = eregi_replace("_", " ", $subdir[$i]);
echo "<tr><td><a href=?album=$album/$subdir[$i]>$directory_name</a></td></tr>\n";
}
echo "</table>";
}
// Foto's pagina weergeven
if ($aantal_fotos > 0) {
// sorteren op alfabet...
sort ($foto);
// eerste en laatste foto op deze pagina bepalen...
$eerste_foto = (($page * $cols * $rows) + 1);
$laatste_foto = (($page + 1) * $cols * $rows);
// tabel beginnen...
echo "<table border=0 cellpadding=10 cellspacing=0><tr>\n";
// alleen foto's tussen eerste en laatste foto afdrukken...
for ($i = $eerste_foto - 1; ($i < $aantal_fotos) && ($i < $laatste_foto); $i++) {
ClearStatCache();
// Afmetingen van foto bepalen...
$size = GetImageSize("$album/$foto[$i]");
// Afmeting van Window bepalen...
$size[0] = $size[0] + 200;
$size[1] = $size[1] + 200;
// bestandsgrootte bepalen...
$file_size = fileSize("$album/$foto[$i]");
$file_size = round($file_size / 1000) . "k";
// Extensie van bestand afhakken, en daarna alle "_" vervangen door " "
$display = eregi_replace(".jpg|.jpeg|.gif|.bmp|.png", "", $foto[$i]);
$display = eregi_replace("_", " ", $display);
// Veld in tabel weergeven...
echo ("<td $colspan><a href=\"$album/$foto[$i]\" onmouseover=\"window.status='Vergroten';return true;\"
onmouseout=\"window.status=''; return true\"
onclick=\"window.open('show_foto.php?album=$album&fotonr=$i', 'pix$i', 'width=$size[0], height=$size[1], innerwidth=$size[0], innerheight=$size[1], directories=no, location=no, menubar=no, scrollbars=no, status=no, toolbar=no, resizable=no, top=0, left=0, leftmargin=0, topmargin=0, marginwidth=0, marginheight=0, screenX=0, screenY=0' ); return false\">\n");
$entry_without_ext = eregi_replace("\.jpg$|\.jpeg$|\.gif$|\.bmp$|\.png$", "", $foto[$i]);
// Bestaat thumb?
switch (true) {
case (is_file($thumbs."/".$entry_without_ext.".jpg")):
$thumbnail = $thumbs."/".$entry_without_ext.".jpg";
break;
case (is_file($thumbs."/".$entry_without_ext.".jpeg")):
$thumbnail = $thumbs."/".$entry_without_ext.".jpeg";
break;
case (is_file($thumbs."/".$entry_without_ext.".gif")):
$thumbnail = $thumbs."/".$entry_without_ext.".gif";
break;
case (is_file($thumbs."/".$entry_without_ext.".bmp")):
$thumbnail = $thumbs."/".$entry_without_ext.".bmp";
break;
case (is_file($thumbs."/".$entry_without_ext.".png")):
$thumbnail = $thumbs."/".$entry_without_ext.".png";
break;
default:
$thumbnail = "";
}
if ($thumbnail == "") {
// Thumb bestaat niet
if (! eregi("\.jpg$|\.jpeg$", $foto[$i])) {
// Andere formaten dan jpg of jpeg zitten niet ingebouwd...
echo "Geen thumbnail beschikbaar...<br>\n";
} else {
// Voor jpg/jpeg formaat: thumbnail maken
echo "";
// Als nog geen directory voor de thumbs bestaat, deze aanmaken...
if (! is_dir ($thumbs)) {
mkdir("$thumbs");
}
// Thumbs aanmaken kan even duren, voor iedere thumb de timeout klok
// resetten, en een maximum van 20 seconden per thumb instellen.
set_time_limit(20);
// Voorlopig alleen jpp/jpeg support...
// Voor het aanmaken van thumbs bij gif en png, moet hier wat worden bijgebouwd...
$photo = imagecreatefromjpeg ("$album/$foto[$i]");
// afmetingen bepalen
$photo_width = imagesx ($photo);
$photo_height = imagesy ($photo);
// minimaal een van de afmetingen is groter dan $max_thumb..?
if ($photo_width > $max_thumb_width || $photo_height > $max_thumb_height) {
// langwerpiger dan thumb??
if ($photo_width / $photo_height > $max_thumb_width / $max_thumb_height) {
// Langwerpiger dan thumb, de breedte van de thumb is bepalend
$new_thumb_width = $max_thumb_width;
// Hoogte berekenen:
$value = $photo_width / $max_thumb_width;
$new_thumb_height = round ($photo_height / $value);
} else { // niet langwerpiger...
// De hoogte van de thumb is bepalend...
$new_thumb_height = $max_thumb_height;
// Breedte berekenen
$value = $photo_height / $max_thumb_height;
$new_thumb_width= round ($photo_width / $value);
}
} else {
// Foto is al klein genoeg, afmetingen worden overgenomen
$new_thumb_width = $photo_width;
$new_thumb_height = $photo_height;
}
// plaatje aanmaken, met de juiste afmetingen...
$create_thumb = imagecreatetruecolor ($new_thumb_width, $new_thumb_height);
// Plaatje kopieren en "resamplen"
imagecopyresampled (
$create_thumb,
$photo,
0, 0, 0, 0,
$new_thumb_width,
$new_thumb_height,
$photo_width,
$photo_height);
// Bestand wegschrijven
ImageJpeg ($create_thumb, $thumbs."/".$entry_without_ext.".jpg", 90);
// thumbnail bestaat nu toch...
$thumbnail = $thumbs."/".$entry_without_ext.".jpg";
// Geheugen opschonen
Imagedestroy($photo);
} // endif: Formaat van foto = jpg of jpeg
} // endif: Thumbnail bestaat niet
$thumbsize = GetImageSize($thumbnail);
// Thumbnail weergeven...
echo "<img src='$thumbnail' border=0 width=$thumbsize[0] height=$thumbsize[1] alt=$i>\n";
// Titel onder thumbnail weergeven...
echo "</a><br>$display<br><br></td>\n\n";
// Einde van de row...?
if (($i % $cols) == $cols -1 ) {
echo "</tr>\n<tr>\n";
}
} // endfor: Alle plaatjes doorlopen...
$pages = ($aantal_fotos / ($cols * $rows));
$nextpage = ($page + 1);
$prevpage = ($page - 1);
// bepalen of er wel of geen volgende en vorige moeten worden weergegeven...
if (($page + 1) < $pages) {
// aantal op volgende pagina berekenen:
$aantal_op_volgende = $aantal_fotos - $nextpage * $rows * $cols;
// wanneer dit meer dan het aantal op één pagina is, dit terugschroeven tot het aantal op één pagina.
if ($aantal_op_volgende > $rows * $cols) {
$aantal_op_volgende = $rows * $cols;
}
// aantal op volgende is 1: in enkelvoud weergeven, anders aantal specificeren.
if ($aantal_op_volgende == 1) {
$volgende = "<a href=?album=$album&page=$nextpage>Volgende foto </a>";
} else {
$volgende = "<a href=?album=$album&page=$nextpage>Volgende ". $aantal_op_volgende ." foto's </a>";
}
} else {
$volgende = "";
}
if (($page+1) > "1") {
// aantal op vorige is 1: in enkelvoud weergeven, anders aantal specificeren.
if ($rows * $cols > 1) {
$vorige = "<a href=?album=$album&page=$prevpage>Vorige ". ($rows * $cols) ." foto's </a>";
} else {
$vorige = "<a href=?album=$album&page=$prevpage>Vorige foto </a>";
}
} else {
$vorige = "";
}
if ($cols % 2 == 1) {
$footer_colspan = "colspan=$cols";
} else {
$footer_colspan = "colspan=" . ($cols / 2);
}
// Footer, dit staat onder de tabel.
echo "</tr><tr><td $footer_colspan align=right> $vorige </td>\n";
echo "<td $footer_colspan align=left> $volgende </td>\n";
echo "</tr>\n";
echo "</table>\n";
} // endif: Fotoalbum afdrukken...?
?>
</font>
</td>
<td>
<font face="Calibri">
<a href="../agenda.html">
<img src="../afbeeldingen/horstmedia_13.gif" width="146" height="34" border="0" alt=""></a></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="1" height="34" alt=""></font></td>
</tr>
<tr>
<td>
<font face="Calibri">
<a href="fotoalbum.php">
<img src="../afbeeldingen/horstmedia_14.gif" width="146" height="35" border="0" alt=""></a></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="1" height="35" alt=""></font></td>
</tr>
<tr>
<td rowspan="2">
<font face="Calibri">
<img src="../afbeeldingen/website_15.gif" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="1" height="66" alt=""></font></td>
</tr>
<tr>
<td rowspan="3">
<font face="Calibri">
<img src="../afbeeldingen/website_16.gif" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="1" height="389" alt=""></font></td>
</tr>
<tr>
<td colspan="9">
<font face="Calibri">
<img src="../afbeeldingen/website_17.gif" width="961" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="1" height="1" alt=""></font></td>
</tr>
<tr>
<td colspan="7">
<font face="Calibri">
<img src="../afbeeldingen/website_18.gif" width="753" height="15" alt=""></font></td>
<td colspan="2">
<font face="Calibri">
<a href="doc/av.pdf">
<img src="../afbeeldingen/horstmedia_30.gif" width="208" height="15" border="0" alt=""></a></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="1" height="15" alt=""></font></td>
</tr>
<tr>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="27" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="2" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="73" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="81" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="1" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="101" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="42" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="168" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="287" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="62" height="1" alt=""></font></td>
<td>
<font face="Calibri">
<img src="../afbeeldingen/spacer.gif" width="146" height="1" alt=""></font></td>
<td></td>
</tr>
</table>
<font face="Calibri">
<!-- End ImageReady Slices -->
</font>
</td>
</tr>
</table>
</body>
</html>