kolommen in negatieve volgorde

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mark moes

mark moes

02/01/2010 19:59:00
Quote Anchor link
Hoi,

Het script hieronder is een gedeelte van een fotoboek. Hier wordt een foto geshowd, met daaronder een slideshow van tumbnails.

Het probleem zit m in het stukje code waarin ik de 'vorige' thumbnails wil laten zien. Eigenlijk gaat dat best goed, ik doe precies zoals het moet één minder, zodat inderdaad de vorige foto, als die bestaat, weergegeven wordt.
Alleen is nu de volgorde, met als zichtbare foto nummer 0:

-1 -2 -3 0 1 2 3 en dit moet worden: -3 -2 -1 0 1 2 3. Ik moest eigenlijk de volgorde waarin ik de html kolommen maak, kunnen omdraaien.

Ter verduidelijking: zie code: regel nr. 30-39

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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<?php
function show_img ( $directory, $ext, $thumb, $slide ) {
    // Array van alle images
     $images = get_img ( $directory, $ext, $thumb );
    $slide = 5;
    
    $thumb_size = max ( getimagesize ( $directory."/".$thumb."/".$_GET['View'] ) ) ;
    
     // Tabel maken
    $html = "\n<!-- Start of Automatic Filled Table -->\n<center>\n<table>\n";
    
    // 1 Foto met Thumb-Slide-Show creeren
    if ( isset ( $_GET['View'] ) && file_exists ( $directory."/".$_GET['View'] ) ) {
        
        // Grote foto laten zien in tabel, 1e rij, 1e kolom
        
        $count = array_keys ( $images , $_GET['View'] );
        
        $html .= "<tr><center><div>";
        
        if ( array_key_exists ( $count[0], $images ) ) {
            $html .= "<img height=\"200\" width=\"200\" src=\"".$directory."/".$images[$count[0]]."\" title=\"".$directory."/".$images[$count[0]]."\"/>";
        }
else {
            $html .= "&nbsp;";
        }

        
        $html .= "</div></center></tr><tr>";
        
        // 1 BACK
        for ( $i=0; $i < ($slide-1)/2; $i++ ) {
            $html .="<td height=\"".$thumb_size."\" width=\"".$thumb_size."\">";
            $count[0]--;
            if ( array_key_exists ( ( $count[0] ), $images ) ) {
                $html .= "<a href=\"?Page=Photobook&&Album=".$_GET['Album']."&&View=".$images[$count[0]]."\"><img src=\"".$directory."/".$thumb."/".$images[$count[0]]."\" title=\"".$directory."/".$thumb."/".$images[$count[0]]."\"/></a>";
            }
else {
                $html .= "&nbsp;";
            }

            $html .= "</td>";
        }

        // END
        
        // THIS

        $html .= "<td height=\"".$thumb_size."\" width=\"".$thumb_size."\">";
        $count = array_keys ( $images , $_GET['View'] );
        if ( array_key_exists ( $count[0], $images ) ) {
            $html .= "<img src=\"".$directory."/".$thumb."/".$images[$count[0]]."\" title=\"".$directory."/".$thumb."/".$images[$count[0]]."\"/>";
        }
else {
            $html .= "&nbsp;";
        }

        $html .= "</td>";
        // END
        
        // 1 NEXT

        for ( $i=0; $i < ($slide-1)/2; $i++ ) {
            $html .= "<td height=\"".$thumb_size."\" width=\"".$thumb_size."\">";
            $count[0]++;
            if ( array_key_exists ( ( $count[0] ), $images ) ) {
                $html .= "<a href=\"?Page=Photobook&&Album=".$_GET['Album']."&&View=".$images[$count[0]]."\"><img src=\"".$directory."/".$thumb."/".$images[$count[0]]."\" title=\"".$directory."/".$thumb."/".$images[$count[0]]."\"/></a>";
                //$count[0]--;
            } else {
                $html .= "&nbsp;";
                //$count[0]--;
            }
            $html .= "</td>";
        }

        // END
        
        $html .="</tr>";
    }
else {
        // Thumbs met link maken
         foreach ( $images as $image ) {
            if ( !file_exists ( $directory."/".$thumb . "/" . $image ) ) {
                  img_resize( $width = 90, $height = 90 , $image = $image, $path = $thumb );
            }

            $html .= "<a href=\"?Page=Photobook&&Album=".$_GET['Album']."&&View=".$image."\"><img src=\"". $directory."/".$thumb ."/". $image."\" title=\"". $directory."/".$thumb ."/". $image ."\"/></a>\n";
        }

        // End of Thumbs met link maken
    }                    
    // tabel afmaken            
    $html .= "</table>\n</center>\n<!-- End of Automatic Filled Table -->\n\n";
    
    return $html;
}

?>


Ik hoop dat het duidelijk is, anders hoor ik het graag!
Gewijzigd op 01/01/1970 01:00:00 door Mark moes
 
PHP hulp

PHP hulp

16/05/2021 23:23:12
 
Pepijn

Pepijn

02/01/2010 21:09:00
Quote Anchor link
Kan je iets meer informatie geven? het is niet helemaal duidelijk.
Functie get_image kan je deze bv. posten.
 
Mark moes

mark moes

02/01/2010 23:01:00
Quote Anchor link
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
<?php
function get_img ( $directory, $ext, $thumb ) {
     $images = array();
     foreach ( open_dir ( $directory, $thumb ) as $file ) {
          if ( !is_dir ( $directory."/".$file ) ) {
               $file = strtolower ( $file ) ;
            list( $file_dirname , $file_basename , $file_extension , $file_type )= array_values ( pathinfo ( $file ) );
            if ( in_array ( $file_extension, $ext ) ) {
                $images[] .= $file;
            }
        }
    }

    return $images;
}

?>


Is tie dan, maar ik denk niet dat het daar in zit. Wat er gebeurt is dat ik doormiddel van een for loop gegevens, dus de images, in een tabel zet.
Alleen moet ik de eerste kolommen in omgekeerde volgorde neerzetten.

Ik creeer dus een kolom met een thumbnail er in, en dat zijn dus de thumbnails om de grote foto heen, de volgende(n) en de vorige(n).

Zoals het nu gaat is dit:

foto 0 is gegeven. Ik wil er 4 andere thumbs omheen zetten.
wordt dus: -1 -2 0 1 2

Het moet worden:
-2 -1 0 1 2

Het script werkt het dus netjes, zoals het hoort, van links naar rechts af,
maar voor de eerste thumbnails moet het juist andersom.
Ik wil niet de 2 buitenste kolommen handmatig aanmaken, het moet zo variabel mogelijk blijven.
 
Steen

steen

02/01/2010 23:10:00
Quote Anchor link
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
<?php
  for ( $i=0; $i < ($slide-1)/2; $i++ ) {
            $html .="<td height=\"".$thumb_size."\" width=\"".$thumb_size."\">";
            $count[0]--;
            if ( array_key_exists ( ( $count[0] ), $images ) ) {
                $html .= "<a href=\"?Page=Photobook&&Album=".$_GET['Album']."&&View=".$images[$count[0]]."\"><img src=\"".$directory."/".$thumb."/".$images[$count[0]]."\" title=\"".$directory."/".$thumb."/".$images[$count[0]]."\"/></a>";
            }
else {
                $html .= "&nbsp;";
            }

            $html .= "</td>";
        }
[
/code]

Moet dan worden (met twijfel over de '=')

[
code]
[
code]<?php
  for ( $i=0; $i >= ($slide-1)/2; $i-- ) {
            $html .="<td height=\"".$thumb_size."\" width=\"".$thumb_size."\">";
            $count[0]--;
            if ( array_key_exists ( ( $count[0] ), $images ) ) {
                $html .= "<a href=\"?Page=Photobook&&Album=".$_GET['Album']."&&View=".$images[$count[0]]."\"><img src=\"".$directory."/".$thumb."/".$images[$count[0]]."\" title=\"".$directory."/".$thumb."/".$images[$count[0]]."\"/></a>";
            }
else {
                $html .= "&nbsp;";
            }

            $html .= "</td>";
        }
[
/code]
Gewijzigd op 01/01/1970 01:00:00 door steen
 
Mark moes

mark moes

04/01/2010 16:20:00
Quote Anchor link
Nee, dat is het niet. Het enige wat we dan veranderen is de loop, en die is goed :D

Nog een poging mezelf te verduidelijken:

In de loop wordt een kolom gecreeerd, met het item er in. Het probleem is dat de eerste kolom in de loop links wordt gecreeerd, en de daaropvolgende(n) aan de rechterkant daarnaast. Net zoals dat we schrijven: van links naar rechts.

Dit moet nu juist andersom. Dus inplaats van dat de eerste kolom in de loop links begint, moet die rechts beginnen, en de daaropvolgenden aan de linkerkant er naast.
 



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.