foto uit dir met volgende en vorige

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arjan jansen

arjan jansen

19/01/2009 01:27:00
Quote Anchor link
Hallo

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
 
PHP hulp

PHP hulp

24/11/2024 11:16:46
 
Robin

Robin

19/01/2009 09:30:00
Quote Anchor link
ik heb wel nog een script staan die werkt maar hij is wat slecht geprogrammeerd

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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++;
?>
Gewijzigd op 01/01/1970 01:00:00 door Robin
 
Robert Deiman

Robert Deiman

19/01/2009 09:46:00
Quote Anchor link
@Arjan

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.
 
Joren de Wit

Joren de Wit

19/01/2009 10:57:00
Quote Anchor link
Robert_Deiman schreef op 19.01.2009 09:46:
Door de key (0, of 1 in dit geval) mee te geven als ?id=1 in de url van je vorige/ volgende link
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.

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.
 
Robert Deiman

Robert Deiman

19/01/2009 11:00:00
Quote Anchor link
Dat is waar, maar als het er echt om gaat om door de foto's van een map te gaan, dan is het geen probleem. Daarbij: Als je sorteert op datum (dat kan ook namelijk) dan maakt het niets uit, de foto's die nieuwer zijn worden aan het eind toegevoegd. Nadeel is daarbij weer wel dat je geen foto's moet verwijderen.

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.
 
Arjan jansen

arjan jansen

19/01/2009 15:49:00
Quote Anchor link
Bedankt voor jullie reactie

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
 
Arjan jansen

arjan jansen

21/01/2009 23:48:00
Quote Anchor link
Bedankt voor jullie reacties

ik heb het dankzij jullie hulp


Arjan
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.