Antworten auf deine Fragen:
Neues Thema erstellen

PHP Galerie mit Blätterfunktion

Mew

Aktives Mitglied

Hallo Leute!

Ich habe mir eine kleine Galerie erstellt und diese klappt auch wunderbar. Jetzt habe ich aber ein neues Design auf der Seite und nun können maximal 6 Bilder pro Seite erscheinen.

Hier ist der Code:

PHP:
if($Verzeichniszeiger = @opendir($Pfad))
{

echo "<table style='width: 100%;'><tr>";
$i = 0;
$ii = 0;
$iii = 1;

    while($Datei = readdir($Verzeichniszeiger) AND $ii != 6)
    {
        if ($Datei != "." && $Datei != "..")
        {
        
        if($i == "2") 
        
        {
        
        echo "</tr><tr>";
        
        $i = 0;
        
        } 
        
      $groesse = getimagesize($Pfad . $Datei);
			$width = $groesse[0];
			$height = $groesse[1];
      
      if($width == "640" AND $height == "480")
      {
      $width = "230";
			$height = "180";
      }
      elseif($width == "480" AND $height == "640")
      {
      $width = "180";
			$height = "230";
      }
        

       echo "<td style='width: 50%;'><p style='text-align: center;'><a href=\"images/galerie/$folder/$Datei\" rel=\"lightbox[$folder]\" title=\"$folder\"><img src='images/galerie/$folder/$Datei' width='$width' height='$height' style='border: 1px solid #CCCCCC;' alt='Galerie $Datei' /></a></p>
</td>";
        $i = $i+1;
		$ii = $ii+1;
		
		if($ii == 6){
			
		echo "</tr></table>";
		
		$iii = $iii+1;
		echo"<hr><p><a href=\"bildervideos.php?folder=$folder?page=$iii\">";
		
		?>N&auml;chste Seite...</a></p>
			
		<?
		
		}
		
        }
    }

Ich habe den Code schon so umgebaut, dass nach 6 Bilder der Text Nächste Seite erscheint, jedoch weiß ich nicht, wie ich nun auf der nächsten Seite das so mache, das die ersten 6 Bilder nicht mehr angezeigt werden. Kann man das mit einem array machen???

Wie würdet ihr es machen?
Vielen Dank schon einmal für die Bemühungen.
 

saila

Moderatorle

AW: PHP Galerie mit Blätterfunktion

Eine Blätterfunktion zu erklären..... und vorkauen möchte ich das nun auch nicht. Aber zum einen gibt es hier im Forum zu dieser Frage schon x Beiträge - und zum anderen gibt es bei auch so etwas. Also viel Spass.
 

DaBoarder

Noch nicht viel geschrieben

AW: PHP Galerie mit Blätterfunktion

Naja aber wirklich ein workshop für so eine Bildergallerie hab ich auch noch nicht entdeckt....
 

Chriss1987

me.drinkCoffee();

AW: PHP Galerie mit Blätterfunktion

Hi,

hab auf die Schnelle mal was zusammengeschrieben:
PHP:
<?php

session_start();

// Funktion, um Dateien aus einem Ordner auszulesen
// die Funde werden in der $_SESSION-Variablen gespeichert
function getImagesInDir($Pfad)
    {
        if ($Verzeichniszeiger = @opendir($Pfad))
            {
                $_SESSION['images'] = array();
                while($Datei = readdir($Verzeichniszeiger))
                    {
                        if ($Datei != "." && $Datei != "..")
                            {
                                $_SESSION['images'][] = $Datei;
                            }
                    }
                
                return true;
            }
        else
            {
                return false;
            }
    }

// beim ersten Aufruf der Seite wird das entsprechende Verzeichniss ausgelesen
if (!isset ($_SESSION['images'))
    {
        if (!getImagesInDir($Pfad))
            {
                die('Verzeichnis konnte nicht geöffnet werden!');
            }
    }

// Wurde eine Seite angegeben, diese übernehmen, wenn nicht, auf Seite 1 starten
if (isset ($_GET['page']))
    {
        $page = $_GET['page'];
        // Start-Bild ist die Seite mal 6 minus 6 (Array beginnt bei 0)
        $start_image = ($page * 6) - 6;
    }
else
    {
        $page = 1;
        $start_image = ($page * 6) - 6;
    }

// Anfang der Tabelle schreiben
echo "<table style='width: 100%;'><tr>";

// Schleife, um Bilder anzuzeigen
for ($i = 0; $i <= 5; $i++)
    {
        $image = $start_image + $i;
        // wenn das Bild existiert
        if (isset($_SESSION['images'][$image]))
            {
                // Größe ermitteln
                $groesse = getimagesize($Pfad . $_SESSION['images'][$image]);
                $width = $groesse[0];
                $height = $groesse[1];
                
                if($width == "640" AND $height == "480")
                    {
                        $width = "230";
                        $height = "180";
                    }
                elseif($width == "480" AND $height == "640")
                    {
                        $width = "180";
                        $height = "230";
                    }
                
                // nach 3 Bildern neue Zeile beginnen
                if (($i+1)%3 == 0)
                    {
                        echo "</tr><tr>";
                    }
                
                // Bilder in der Tabelle
                echo "<td style='width: 50%;'><p style='text-align: center;'><a href=\"images/galerie/$folder/" . $_SESSION['images'][$image] . "\" rel=\"lightbox[$folder]\" title=\"$folder\"><img src='images/galerie/$folder/" . $_SESSION['images'][$image] . "' width='$width' height='$height' style='border: 1px solid #CCCCCC;' alt='Galerie " . $_SESSION['images'][$image] . "' /></a></p></td>";
            }
        // wenn das Bild nicht existiert
        else
            {
                
                // nach 3 Bildern neue Zeile beginnen
                if (($i+1)%3 == 0)
                    {
                        echo "</tr><tr>";
                    }
                
                // leere Zelle schreiben
                echo "<td>&nbsp;</td>";
            }
    }

// Ende der Tabelle
echo "</tr></table>";
// "Navigation"
echo"<hr><p><a href=\"bildervideos.php?folder=" . $folder . "?page=" . $page - 1 . "\">Vorige Seite...</a> | <a href=\"bildervideos.php?folder=" . $folder . "?page=" . $page + 1 . "\">N&auml;chste Seite...</a></p>";

?>

Ist als Anregung gedacht und ungetestet...

Schöne Grüße aus dem Sauerland!
Chriss
 

pain2000

Nicht mehr ganz neu hier

AW: PHP Galerie mit Blätterfunktion

Also das Verzeichnis in ein Array einlesen geht z.B. so:
PHP:
$BilderPfad="img/fotos07_09/";
$Bilder=array();
$BilderVerz=opendir($BilderPfad);
 while($datei=readdir($BilderVerz)) {
  if ($Datei != "." && $Datei != "..") {
   array_unshift($Bilder, $datei);
  }
 }
closedir($BilderVerz);
usort($Bilder,"strnatcasecmp");
Eine Seitennavigation geht z.B. so:
PHP:
$anzCounter=0;
$SpaltenAnz=3;   
$B_je_Seite=15;
 $SeitenAnz=ceil(count($Bilder) / $B_je_Seite);
 $akSeite=$SeitenAnz;
 if(isset($_GET["seite"])) $akSeite=$_GET["seite"];

 $zur="Seite<br>"; if($SeitenAnz > 1) $zur="Seiten<br>";
 $Bvon=($akSeite - 1) * $B_je_Seite;
 $Bbis=$Bvon + $B_je_Seite;
 if($Bbis>count($Bilder)) $Bbis=count($Bilder);

 for($x=1;$x<=$SeitenAnz;$x++) {
  if($akSeite == $x) {
   $SeitenLink .= " $x |"; $y=$x - 1;
   if($x == 1) { $zur .= "&laquo; |"; $y += 2; }
   else { $zur .= "<a href=\"$PHP_SELF?seite=$y\">&laquo;</a> |"; $y += 2; }
   if($x == $SeitenAnz) { $vor=" &raquo;"; }
   else { $vor=" <a href=\"$PHP_SELF?seite=$y\">&raquo;</a>"; }
  }
  else { $SeitenLink .= " <a href=\"$PHP_SELF?seite=$x\">$x</a> |"; }
 }
 $SeitenLink=$zur . $SeitenLink . $vor;
Die Ausgabe könnte dann z.B. so aussehen:
PHP:
echo"<table> \n <tr> \n  <td colspan=$SpaltenAnz>$SeitenLink</td></tr> \n <tr> \n";
for($x=$Bvon;$x<$Bbis;$x++) { $anzCounter++; 
 if(bcmod($anzCounter, $SpaltenAnz) == 0) echo"  <td><img src=\"".$BilderPfad$Bilder[$x]."\"></td></tr> \n <tr> \n";
 else echo"  <td><img=\"".$BilderPfad$Bilder[$x]."\"></td> \n";
}
 if(bcmod($anzCounter, $SpaltenAnz) == 0) $anzCounter=0;
 else { echo" </tr><tr> \n"; $anzCounter=0; }
echo"  <td>$SeitenLink</td></tr></table>
Ist sicherlich nicht ganz perfekt, aber es funzt. Hab jetzt mal die Variablen so gelassen, wie sie bei mir sind und nat. einiges abgespeckt... Aber als Anregung evtl. zu gebrauchen.
 

DaBoarder

Noch nicht viel geschrieben

AW: PHP Galerie mit Blätterfunktion

Super werd ich alles mal die Tage durchprobieren, da ich eh noch php Anfänger bin ist das guter Lernstoff
thx

Na gut habs grad mal ausprobiert, ich scheitere kläglich daran. Ohne ausführliche *****ensichere Erklärung bekomm ich das wohl nicht hin.
kommt immer "Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in D:\xampp\htdocs\web\gallerieauslesen\auslesen.php on line 47 "

da stimmt irgendwas nicht im letzten block für die ausgabe.....
 
Zuletzt bearbeitet:

Chriss1987

me.drinkCoffee();

AW: PHP Galerie mit Blätterfunktion

Super werd ich alles mal die Tage durchprobieren, da ich eh noch php Anfänger bin ist das guter Lernstoff
thx

Na gut habs grad mal ausprobiert, ich scheitere kläglich daran. Ohne ausführliche *****ensichere Erklärung bekomm ich das wohl nicht hin.
kommt immer "Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in D:\xampp\htdocs\web\gallerieauslesen\auslesen.php on line 47 "

da stimmt irgendwas nicht im letzten block für die ausgabe.....

Hi,
bei welchem Script kommt die Fehlermeldung?

Hab jetzt mal mein Script getestet und Fehler beseitigt, jetzt funktionierts! ;)
Hier mal die Source:
PHP:
<?php

session_start();

$Pfad = "2009_08_13/";
$folder = "2009_08_13";

// Funktion, um Dateien aus einem Ordner auszulesen
// die Funde werden in der $_SESSION-Variablen gespeichert
function getImagesInDir($Pfad)
    {
        if ($Verzeichniszeiger = @opendir($Pfad))
            {
                $_SESSION['images'] = array();
                while($Datei = readdir($Verzeichniszeiger))
                    {
                        if ($Datei != "." && $Datei != "..")
                            {
                                $_SESSION['images'][] = $Datei;
                            }
                    }
                
                return true;
            }
        else
            {
                return false;
            }
    }

// beim ersten Aufruf der Seite wird das entsprechende Verzeichniss ausgelesen
if (!isset ($_SESSION['images']))
    {
        if (!getImagesInDir($Pfad))
            {
                die('Verzeichnis konnte nicht geöffnet werden!');
            }
    }

// Wurde eine Seite angegeben, diese übernehmen, wenn nicht, auf Seite 1 starten
if (isset ($_GET['page']))
    {
        $page = $_GET['page'];
        // Start-Bild ist die Seite mal 6 minus 6 (Array beginnt bei 0)
        $start_image = ($page * 6) - 6;
    }
else
    {
        $page = 1;
        $start_image = ($page * 6) - 6;
    }

// Anfang der Tabelle schreiben
echo "<table style='width: 100%;'><tr>\n";

// Schleife, um Bilder anzuzeigen
for ($i = 0; $i <= 5; $i++)
    {
        $image = $start_image + $i;
        // wenn das Bild existiert
        if (isset($_SESSION['images'][$image]))
            {
                // Größe ermitteln
                $groesse = getimagesize($Pfad . $_SESSION['images'][$image]);
                $width = $groesse[0];
                $height = $groesse[1];
                
                if($width == "640")
                    {
                        $width = "240";
                        $height = "180";
                    }
                elseif($height == "640")
                    {
                        $width = "180";
                        $height = "240";
                    }
                
                // nach 3 Bildern neue Zeile beginnen
                if ($i%3 == 0)
                    {
                        echo "</tr><tr>\n";
                    }
                
                // Bilder in der Tabelle
                echo "<td style='width: 33%;'><p style='text-align: center;'><a href=\"$folder/" . $_SESSION['images'][$image] . "\" rel=\"lightbox[$folder]\" title=\"$folder\"><img src='$folder/" . $_SESSION['images'][$image] . "' width=\"$width\" height=\"$height\" style='border: 1px solid #CCCCCC;' alt='Galerie " . $_SESSION['images'][$image] . "' /></a></p></td>\n";
            }
        // wenn das Bild nicht existiert
        else
            {
                
                // nach 3 Bildern neue Zeile beginnen
                if ($i%3 == 0)
                    {
                        echo "</tr><tr>\n";
                    }
                
                // leere Zelle schreiben
                echo "<td>&nbsp;</td>\n";
            }
    }

// Ende der Tabelle
echo "</tr></table>\n";
echo "<hr>";
// "Navigation"
$anz_bilder = count($_SESSION['images']);
if ($page != 1)
    {
        echo "<a href=\"test.php?folder=" . $folder . "&page=" . ($page - 1) . "\">Vorige Seite...</a> | ";
    }

if (($page + 1) <= ceil($anz_bilder / 6))
    {
        echo "<a href=\"test.php?folder=" . $folder . "&page=" . ($page + 1) . "\">N&auml;chste Seite...</a>";
    }

?>

$Pfad und $folder musst du natürlich noch anpassen! ;)
Wenn was ist, meld dich einfach.

Schöne Grüße aus dem Sauerland!
Chriss
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
118.565
Beiträge
1.538.067
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben