Skocz do zawartości

Galeria zdjęć


ruda wiewióra

Rekomendowane odpowiedzi

Witajcie :rolleyes:

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ć :P 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

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

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności