image gallery
Voor elke map met foto's, maar ik een aparte php pagina aan, waarin ik alle variabele een waarde geef (zoals path=...) en vervolgens het script aanroep.
Het script bestaat uit 3 delen; in deel 1wordt de map waar het om gaat gescand (op extenties); in deel 2 worden - als ze er nog niet zijn - van alle foto's tumbnails gemaakt en wordt een pagina gemaakt met de tumbnails; in deel 3 kun je dan een tumbnail aanklikken en wordt de grote foto getoond. Hierbij hoort ook een next en previous knop, maar dat werkt niet.
Hieronder de php pagina voor elke map:
Code (php)
En hier het fotoscript:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
$_GET['i'] = 0;
// FOLDERSCAN
$files = "0";
$handle = opendir($path);
while ($file = readdir($handle)) {
if (!is_dir($path . "/" . $file) && $file != "." && $file != "..") {
$extension = explode(".", $file);
$extension_i = (count($extension) - 1);
$ext = $extension[$extension_i];
if ($ext == "jpg" || $ext == "jpeg" || $ext == "JPG" || $ext == "JPEG" || $ext == "png" || $ext == "PNG") {
$images[$files] = $file;
$files++;
}
}
}
sort($images);
//MAKE GALLERY
echo "<h1>$title</h1><a>($files foto's in deze gallerij)</a>\n";
echo "<div id='fotogallerij'>\n";
if (!$_GET["i"]) {
foreach ($images as $image) {
$source = $path . "/" . $image;
$tsource = $thumbpath . "/" . $image;
if (file_exists($source) && !file_exists($tsource)) {
$size = getimagesize($source);
$ratio = $size[0] / $size[1];
if ($ratio >= 1) {
$scale = $thumbnail_w / $size[0];
} else {
$scale = $thumbnail_h / $size[1];
}
if ($thumbnail_w >= $size[0] && $thumbnail_h >= $size[1]) {
$scale = 1;
}
$resize = imagecreatetruecolor($size[0] * $scale, $size[1] * $scale);
switch ($size['mime']) {
case 'image/jpeg':
$im = imagecreatefromjpeg($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
imagejpeg($resize, $thumbpath . "/" . $image, $quality);
break;
case 'image/png':
$im = imagecreatefrompng($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
imagepng($resize, $thumbpath . "/" . $image, $quality);
break;
}
imagedestroy($im);
}
echo "<a href='" . $source . "'> <img src='" . $tsource . "' alt='' /></a>\n";
// echo "<a href='index.php?i'=".$image."'><img src='".$tsource."' alt=""></a>\n";
//DE 2DE REGEL IS DE ORIGINELE MAAR GAF FOUTMELDINGEN; DUS AANGEPAST IN DE 1STE.
}
}
echo "<br />";
echo "</div>";
echo "<br /><br />";
//LOOK IMAGES
$image_path = $path . "/" . $_GET["i"];
if ($_GET["i"] && file_exists($path . '/' . $_GET["i"])) {
echo '<img src="' . $path . '/' . $_GET["i"] . '" . ' / '>';
$id = array_search($_GET["i"], $images);
$files2 = $files - 1;
if ($id > "0" && $id < $files2) {
$next_id = $id + 1;
$prev_id = $id - 1;
echo '<a href="?g=' . $g . '&i=' . $images[$prev_id] . '">prev</a>, <a href="?g=' . $g . '&i=' . $images[$next_id] . '">nxt</a>';
}
if ($id == "0") {
$next_id = "1";
echo 'prev, <a href="?g=' . $g . '&i=' . $images[$next_id] . '">nxt</a>';
}
if ($id == $files2) {
$prev_id = $files2 - 1;
echo '<a href="?g=' . $g . '&i=' . $images[$prev_id] . '">prv</a>, nxt';
}
}
?>
$_GET['i'] = 0;
// FOLDERSCAN
$files = "0";
$handle = opendir($path);
while ($file = readdir($handle)) {
if (!is_dir($path . "/" . $file) && $file != "." && $file != "..") {
$extension = explode(".", $file);
$extension_i = (count($extension) - 1);
$ext = $extension[$extension_i];
if ($ext == "jpg" || $ext == "jpeg" || $ext == "JPG" || $ext == "JPEG" || $ext == "png" || $ext == "PNG") {
$images[$files] = $file;
$files++;
}
}
}
sort($images);
//MAKE GALLERY
echo "<h1>$title</h1><a>($files foto's in deze gallerij)</a>\n";
echo "<div id='fotogallerij'>\n";
if (!$_GET["i"]) {
foreach ($images as $image) {
$source = $path . "/" . $image;
$tsource = $thumbpath . "/" . $image;
if (file_exists($source) && !file_exists($tsource)) {
$size = getimagesize($source);
$ratio = $size[0] / $size[1];
if ($ratio >= 1) {
$scale = $thumbnail_w / $size[0];
} else {
$scale = $thumbnail_h / $size[1];
}
if ($thumbnail_w >= $size[0] && $thumbnail_h >= $size[1]) {
$scale = 1;
}
$resize = imagecreatetruecolor($size[0] * $scale, $size[1] * $scale);
switch ($size['mime']) {
case 'image/jpeg':
$im = imagecreatefromjpeg($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
imagejpeg($resize, $thumbpath . "/" . $image, $quality);
break;
case 'image/png':
$im = imagecreatefrompng($source);
imagecopyresampled($resize, $im, 0, 0, 0, 0, $size[0] * $scale, $size[1] * $scale, $size[0], $size[1]);
imagepng($resize, $thumbpath . "/" . $image, $quality);
break;
}
imagedestroy($im);
}
echo "<a href='" . $source . "'> <img src='" . $tsource . "' alt='' /></a>\n";
// echo "<a href='index.php?i'=".$image."'><img src='".$tsource."' alt=""></a>\n";
//DE 2DE REGEL IS DE ORIGINELE MAAR GAF FOUTMELDINGEN; DUS AANGEPAST IN DE 1STE.
}
}
echo "<br />";
echo "</div>";
echo "<br /><br />";
//LOOK IMAGES
$image_path = $path . "/" . $_GET["i"];
if ($_GET["i"] && file_exists($path . '/' . $_GET["i"])) {
echo '<img src="' . $path . '/' . $_GET["i"] . '" . ' / '>';
$id = array_search($_GET["i"], $images);
$files2 = $files - 1;
if ($id > "0" && $id < $files2) {
$next_id = $id + 1;
$prev_id = $id - 1;
echo '<a href="?g=' . $g . '&i=' . $images[$prev_id] . '">prev</a>, <a href="?g=' . $g . '&i=' . $images[$next_id] . '">nxt</a>';
}
if ($id == "0") {
$next_id = "1";
echo 'prev, <a href="?g=' . $g . '&i=' . $images[$next_id] . '">nxt</a>';
}
if ($id == $files2) {
$prev_id = $files2 - 1;
echo '<a href="?g=' . $g . '&i=' . $images[$prev_id] . '">prv</a>, nxt';
}
}
?>
Kortom: wanneer eenmaal een grote foto is getoond, zijn er geen next en previous knoppen wat wel zou moeten. Ook zou ik graag een knop "ga terug naar de tumbnailpagina" hebben. Kan iemand mij helpen?
Groet,
Bas
Er zijn nog geen reacties op dit bericht.