Fotoalbum, bladeren naar volgende foto
Ik ben bezig met me fotoalbum, deze wil ik opnieuw gaan maken maar dan met een extraatje. Namelijk:
Als je op de thumbnail klikt in de pagina fotoalbums.php moet er een appart schermpje openen met:
- Grote foto
- Prev | Next
Het punt is alleen dat ik echt niet weet hoe ik dit kan maken, ik wil namelijk nog steeds zonder database werken (6) voor mijn fotoalbum, omdat ik het onzinnig vind een tabel vol te stampen met afbeelding namen etc terwijl je ze zo recht uit een map kan plukken.
Ik heb nu dit:
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
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
<?php
// Als album is geselecteerd
if(!isset($_GET['map']))
{
$map = 'PAGINAS/ALBUMS';
}
else
{
$map = $_GET['map'];
}
// Als foto is geselecteerd
if(isset($_GET['foto']))
{
$foto = $_GET['foto'];
}
$thumb = 'thumb';
$link = 'http://localhost/New%20Foto%20Album/';
$width = 768;
$height = 512;
$huidige_ext = strtolower(substr($foto, -3));
$ext = array('jpg', 'jpeg', 'bmp', 'gif', 'png');
// dir openen en file in array gooien
if($open = opendir($map))
{
while(($file = readdir($open)) !== false)
{
if($file != '.' && $file != '..' && $file != $thumb && in_array(strtolower(substr($file, -3)), $ext) || in_array(strtolower(substr($file, -4)), $ext))
{
$foto_lib[] = $file;
}
}
closedir($open);
}
$aantal = count($foto_lib);
echo '<img style="width:'.$width.'; height:'.$height.'" src="'.$link.'/'.$map.'/'.$foto.'" /><br />';
if($foto != 1)
{
$prev = $foto - 1;
echo '<a href="?map='.$map.'&foto='.$prev.'.'.$huidige_ext.'">Prev</a>';
}
echo ' - ';
if($foto != $aantal)
{
$next = $foto + 1;
echo '<a href="?map='.$map.'&foto='.$next.'.'.$huidige_ext.'">Next</a>';
}
?>
// Als album is geselecteerd
if(!isset($_GET['map']))
{
$map = 'PAGINAS/ALBUMS';
}
else
{
$map = $_GET['map'];
}
// Als foto is geselecteerd
if(isset($_GET['foto']))
{
$foto = $_GET['foto'];
}
$thumb = 'thumb';
$link = 'http://localhost/New%20Foto%20Album/';
$width = 768;
$height = 512;
$huidige_ext = strtolower(substr($foto, -3));
$ext = array('jpg', 'jpeg', 'bmp', 'gif', 'png');
// dir openen en file in array gooien
if($open = opendir($map))
{
while(($file = readdir($open)) !== false)
{
if($file != '.' && $file != '..' && $file != $thumb && in_array(strtolower(substr($file, -3)), $ext) || in_array(strtolower(substr($file, -4)), $ext))
{
$foto_lib[] = $file;
}
}
closedir($open);
}
$aantal = count($foto_lib);
echo '<img style="width:'.$width.'; height:'.$height.'" src="'.$link.'/'.$map.'/'.$foto.'" /><br />';
if($foto != 1)
{
$prev = $foto - 1;
echo '<a href="?map='.$map.'&foto='.$prev.'.'.$huidige_ext.'">Prev</a>';
}
echo ' - ';
if($foto != $aantal)
{
$next = $foto + 1;
echo '<a href="?map='.$map.'&foto='.$next.'.'.$huidige_ext.'">Next</a>';
}
?>
Zoals jullie begrijpen, zitten hier enkele problemen aan:
- Foto namen moeten getallen zijn :S.
- En de extensie moet in de gehele map hetzelfde zijn.
Nu is het laatste het probleem niet dat heb ik zo gefixed maar dan heb ik nog probleem 1, kunnen jullie mij op weg helpen?
Gewijzigd op 27/05/2010 16:11:48 door Milo S
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$aantal = count($foto_lib);
echo '<img style="width:'.$width.'; height:'.$height.'" src="'.$link.'/'.$map.'/'.$foto_lib[$foto].'" /><br />';
if($foto != 1)
{
$prev = $foto - 1;
echo '<a href="?map='.$map.'&foto='.$prev.'">Prev</a>';
}
echo ' - ';
if($foto != $aantal)
{
$next = $foto + 1;
echo '<a href="?map='.$map.'&foto='.$next.'">Next</a>';
}
?>
$aantal = count($foto_lib);
echo '<img style="width:'.$width.'; height:'.$height.'" src="'.$link.'/'.$map.'/'.$foto_lib[$foto].'" /><br />';
if($foto != 1)
{
$prev = $foto - 1;
echo '<a href="?map='.$map.'&foto='.$prev.'">Prev</a>';
}
echo ' - ';
if($foto != $aantal)
{
$next = $foto + 1;
echo '<a href="?map='.$map.'&foto='.$next.'">Next</a>';
}
?>
Je zou voor de pop-up gebruik kunnen maken van een van de vele Lightbox-scripts die er zijn. Er zijn ook enkele die verschillende albums (mappen) binnen één pagina ondersteunen. Zit ook al vorige/volgende in en het is te bouwen met het uitlezen van mappen.
Een andere benadering misschien ook een optie?
kijk een op mijn foto site polafoto.nl
Eerste bestand thumbnails.php waarin de thumbnails worden getoond via het doorlopen van een dir.
Maar dit zou ik dan wel combineren met een functie die de namen van de bestanden in getallen omzet. Vervolgens zou ik via explode de bestandsnaam (getal)zonder extensie in een variabele gooien en daarna kun je deze variabele gemakkelijk verhogen of verminderen.
Maar dit is gewoon hoe ik denk van te werken, dit plan moet nog worden uitgeschreven. Momenteel ben ik nog een script aan het schrijven om de gebruiker het geheel te laten uploaden.
Ik snap wat jij bedoelt en dan heb ik eigenlijk antwoord nodig op 1 vraag, kan hem zo snel niet vinden.
Stel je hebt de volgende array:
$foto = array(vakantie001', 'vakantie002', 'vakantie003');
Hoe weet ik dan dat als hij de foto vakantie002 laat zien welk nummer hij heeft:
Reeks
(
[0] => vakantie001
[1] => vakantie002
[2] => vakantie003
)
Dus hoe kom ik er achter dat 002 nummer 1 heeft?
Whoops had hem net gevonden ;)
Hartelijk dank daarvoor!
Dus ik maak automatisch een array:
array
(
[0] => Photo (1)
[1] => Photo (2)
[2] => Photo (3)
[3] => Photo (4)
[4] => Photo (5)
)
En laat knoppen zien, maar als ik dan de vorige foto wil hoe pak ik dan heel simpel de naam van die foto met de key?
Dus als ik dan oproep key = 3 dan wil ik als uitput krijgen: Photo (4)
Weet iemand hoe?