ruda wiewióra Opublikowano 24 Stycznia 2011 Udostępnij Opublikowano 24 Stycznia 2011 Witajcie Chciałabym prosić o pomoc w małej modyfikacji kodu wyświetlającego galerię zdjęć. Kod wygląda w ten sposób: <?php $_katalog = 'galeria'; $_exclusion = Array ('.','..'); $array_pad = dir ( $_katalog ); $arg = array ( ); while ( ( false !== ( $gal = $array_pad -> read ( ) ) ) ) { if ( !in_array ( $gal, $_exclusion ) ) $arg[] = $gal; } $array_pad -> close ( ); sort ( $arg, SORT_ASC ); $id = $_GET['id']; if ( empty ( $id ) ) $id = $arg[0]; for ( $k=0; $k<count ( $arg ); $k++ ) { if ( $id == $arg[$k] ) { echo ( '<img src="'.$_katalog.'/'.$arg[$k].'">' ); if ( !empty ( $arg[($k-1)] ) ) echo ( '<a href="'.$_SERVER['PHP_SELF'].'?id='.$arg[($k-1)].'">« poprzednie</a> · <a href="galeria.php">powrót</a> · ' ); else echo ( '« poprzednie · <a href="galeria.php">powrót</a> · ' ); if ( !empty ( $arg[($k+1)] ) ) echo ( '<a href="'.$_SERVER['PHP_SELF'].'?id='.$arg[($k+1)].'">następne »</a>' ); else echo ( 'następne »' ); } } ?> Chciałabym zmienić go tak, żeby oprócz nawigacji poprzednie/następne zdjęcie była też możliwość przejścia do następnego zdjęcia po kliknięciu na aktualne. Próbowałam to zrobić w ten sposób: if ( $id == $arg[$k] ) { echo ( '<a href="'.$_SERVER['PHP_SELF'].'?id='.$arg[($k+1)].'"><img src="'.$_katalog.'/'.$arg[$k].'"></a>' ); czyli skopiowałam tylko a href z fragmentu kodu odpowiedzialnego za opcję "następne" i zadziałało, ale tylko do pewnego stopnia - ostatnie zdjęcie z katalogu wyświetlało się błędnie i dodatkowo prowadziło też do kolejnego zdjęcia, którego w katalogu już nie ma, więc wyskakiwała pusta strona. Próbowałam dodać do kodu jeszcze: else echo ( '<img src="'.$_katalog.'/'.$arg[$k].'">' ); } znów na wzór fragmentu z nawigacją, ale to spowodowało że galeria w ogóle nie chciała się wyświetlić. Próbowałam też tak: if ( !empty ( $arg[($k+1)] ) ) echo ( '<a href="'.$_SERVER['PHP_SELF'].'?id='.$arg[($k+1)].'"><img src="'.$_katalog.'/'.$arg[$k].'"></a>' ); else echo ( '<img src="'.$_katalog.'/'.$arg[$k].'">' ); ale wszystko na nic. To pewnie jakieś banalne błędy, których ja nie znając się na tym nie potrafię wychwycić Może ktoś z Was będzie umiał mi pomóc Pozdrawiam i z góry dziękuję. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
djmacro Opublikowano 24 Stycznia 2011 Udostępnij Opublikowano 24 Stycznia 2011 pętla for powinna wyglądać tak: for ( $k=0; $k<count ( $arg ); $k++ ) { if ( $id == $arg[$k] ) { if ( !empty ( $arg[($k+1)] ) ) { echo ( '<a href="'.$_SERVER['PHP_SELF'].'?id='.$arg[($k+1)].'"><img src="'.$_katalog.'/'.$arg[$k].'"></a>' ); } else { echo ( '<img src="'.$_katalog.'/'.$arg[$k].'">' ); } if ( !empty ( $arg[($k-1)] ) ) echo ( '<a href="'.$_SERVER['PHP_SELF'].'?id='.$arg[($k-1)].'">? poprzednie</a> ? <a href="galeria.php">powrót</a> ? ' ); else echo ( '? poprzednie ? <a href="galeria.php">powrót</a> ? ' ); if ( !empty ( $arg[($k+1)] ) ) echo ( '<a href="'.$_SERVER['PHP_SELF'].'?id='.$arg[($k+1)].'">następne ?</a>' ); else echo ( 'następne ?' ); } } spróbuj tak - powinno działać jak dobrze rozumiem to chcesz mieć nawigację poprzez linki "poprzedni" i "nastepny" i dodatkowo "następny" będzie w obrazku to te same warunki co do następnego elementu trzeba podać przy wyświetlaniu obrazka a i taka rada: używaj nawiasów, klamr i komentarzy ile tylko się da jak w ifach nie używasz klamr to kod traci na czytelności, jak nie używasz komentarzy, to za miesiąc zapomnisz co ten kod robi ;] Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
ruda wiewióra Opublikowano 24 Stycznia 2011 Autor Udostępnij Opublikowano 24 Stycznia 2011 Działa! Dzięki dzięki dzięki Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
djmacro Opublikowano 24 Stycznia 2011 Udostępnij Opublikowano 24 Stycznia 2011 proszę ^^ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.