foto uit dir met volgende en vorige
zoals bekend staan hier op het forum nogal wat image uit dir script
maar mijn vraag is of er iemand een script kan aanpassen zodat je 1 afbeelding krijg en via een volgende en vorige knop de anderen
Arjan
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
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
<?php
$a = '5'; //aantal plaatjes op 1 pagina
$locatie = "pics/" //map van afbeeldingen
$breedte = '550'; //breedte van de plaatjes
//hieronder hoeft niks veranderd te worden
$dir = opendir($locatie);
$nr = '1';
// Haal de gegevens uit dir
while (false !== ($file = readdir($dir))) {
if (($file !== ".") and ($file !== "..")) {
list($filename, $ext) = explode(".", $file);
list($main, $sub, $include) = explode("/", $PHP_SELF);
$files[$nr] = $file;
$nr++;
}
}
$a0 = count($files);
$a1 = ($a0/$a);
$a2 = round($a1);
if ($a1 > $a2) {
$a2++;
}
$i = '1';
while ($i != ($a2 + 1)) {
if ($pagina == $i) {
$j = (($a * $i)-$a);
$afb = ($j + 1);
while ($j != ($a * $i)) {
if ($afb > $a0) {
$j = ($a * $i);
}
else {
echo "\n<a name = \"pic\"></a><img src=\"$locatie/$files[$afb]\" width=\"$breedte\" border=0> ";
$afb++;
$j++;
}
}
//pagina nummers met links
if($pagina == 1){
$l0 = ($pagina+1);
echo"\n<a href=\"" . $_SERVER['PHP_SELF'] . "?pagina=$l0\">volgende >></a>";
}
elseif($pagina == $a2){
$l1 = ($pagina-1);
echo"\n<a href=\"" . $_SERVER['PHP_SELF'] . "?pagina=$l1\"><< vorige </a>";
}
else{
$l2 = ($pagina-1);
$l3 = ($pagina+1);
echo"\n<a href=\"" . $_SERVER['PHP_SELF'] . "?pagina=$l2\"><< vorige</a> | ";
echo"\n<a href=\"" . $_SERVER['PHP_SELF'] . "?pagina=$l3\">volgende >></a>";
}
}
$i++;
?>
$a = '5'; //aantal plaatjes op 1 pagina
$locatie = "pics/" //map van afbeeldingen
$breedte = '550'; //breedte van de plaatjes
//hieronder hoeft niks veranderd te worden
$dir = opendir($locatie);
$nr = '1';
// Haal de gegevens uit dir
while (false !== ($file = readdir($dir))) {
if (($file !== ".") and ($file !== "..")) {
list($filename, $ext) = explode(".", $file);
list($main, $sub, $include) = explode("/", $PHP_SELF);
$files[$nr] = $file;
$nr++;
}
}
$a0 = count($files);
$a1 = ($a0/$a);
$a2 = round($a1);
if ($a1 > $a2) {
$a2++;
}
$i = '1';
while ($i != ($a2 + 1)) {
if ($pagina == $i) {
$j = (($a * $i)-$a);
$afb = ($j + 1);
while ($j != ($a * $i)) {
if ($afb > $a0) {
$j = ($a * $i);
}
else {
echo "\n<a name = \"pic\"></a><img src=\"$locatie/$files[$afb]\" width=\"$breedte\" border=0> ";
$afb++;
$j++;
}
}
//pagina nummers met links
if($pagina == 1){
$l0 = ($pagina+1);
echo"\n<a href=\"" . $_SERVER['PHP_SELF'] . "?pagina=$l0\">volgende >></a>";
}
elseif($pagina == $a2){
$l1 = ($pagina-1);
echo"\n<a href=\"" . $_SERVER['PHP_SELF'] . "?pagina=$l1\"><< vorige </a>";
}
else{
$l2 = ($pagina-1);
$l3 = ($pagina+1);
echo"\n<a href=\"" . $_SERVER['PHP_SELF'] . "?pagina=$l2\"><< vorige</a> | ";
echo"\n<a href=\"" . $_SERVER['PHP_SELF'] . "?pagina=$l3\">volgende >></a>";
}
}
$i++;
?>
Gewijzigd op 01/01/1970 01:00:00 door Robin
Heb je een klein beetje kennis van PHP? Dan is het eenvoudig zelf te doen:
Pik een script dat de foto's uitleest en in een array zet. (die zijn er volgens mij wel, moet je 1 hebben die de bestanden sorteert)
Deze array zit als volgt in elkaar:
[0] => 'Afbeelding 1'
[1] => 'Afbeelding 2'
Enzovoorts.
Door de key (0, of 1 in dit geval) mee te geven als ?id=1 in de url van je vorige/ volgende link, die je kan laten maken door te kijken of nummer hoger is dan 0. (als dat het geval is, dan mag je wel een vorige link hebben, anders niet) En volgende is huidige id+1.
Op zich heel eenvoudig te maken/ aan te passen. Je hebt daar niet eens veel PHP kennis voor nodig.
Robert_Deiman schreef op 19.01.2009 09:46:
Nadeel is hier wel dat als je nu foto's aan de map toevoegt of verwijdert, het id van de foto's verandert. Ze komen immers op een andere plaats in de gesorteerde array te staan. Een bepaalde url hoeft dus niet per se altijd naar dezelfde foto te verwijzen.Door de key (0, of 1 in dit geval) mee te geven als ?id=1 in de url van je vorige/ volgende link
Wil je dat wel, dan zou ik dat met behulp van een database doen. De foto's zelf komen in een map op de server te staan maar de gegevens zoals id, bestandsnaam, etc komen in de database.
Het is maar net wat er de bedoeling van is. Wil je met het script altijd alle foto's laten zien, dan kan het prima met die array. Anders is het zoals Blanche al zegt wel een aanrader om daar een database voor te gebruiken.
het script geeft een fout melding aan op lijn 5 $breedte = "550"; //breedte van de plaatjes
de foutmelding is Parse error: syntax error, unexpected T_VARIABLE in /storage/mijndomein/users/000811/public/sites/www.sonny-fashion.nl/fotoalbum/album.php
ik weet niet wat er fout is ik heb de dir veranderd in de map waar de foto's staan en verder niks
graag hoor ik jullie reactie weer.
Arjan
ik heb het dankzij jullie hulp
Arjan