tutorials.de-Buchverschenkaktion 08/2010
Thema geschlossen
  1. #1
    Benutzerbild von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen Dennis Wronka genießt hohes Ansehen
    tutorials.de Moderator
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.310
    Blog-Einträge
    231
    Heute mal wieder ein kleiner Code-Schnipsel von mir. Und zwar ein Gallerie-Script ohne Nutzung einer Datenbank. Dafuer aber mit Hilfe meiner Klasse directorylist.

    Bei der Erstellung des Scripts waren mir folgende Punkte wichtig:
    • Flexibilitaet
    • Blaetterfunktion fuer Gallerie und Bilder
    Das Endergebniss kann sich meiner Meinung nach wirklich sehen lassen, denn alle wichtigen Parameter sind einstellbar, wenn ich nicht versehentlich was vergessen haben sollte.

    Es gibt lediglich 2 Voraussetzungen um dieses Script nutzen zu koennen:
    Dies ist zum einen die bereits oben genannte Klasse und zum anderen eine bestimmte Verzeichnisstruktur.
    Es muss ein Verzeichnis fuer die Bilder und eines fuer die Thumbnails geben. In diesen Verzeichnissen befinden sich die Unterverzeichnisse mit den Gallerien.
    Beispiel:
    Code :
    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
    
    galleries
    |
    |----- images
    |      |
    |      |----- Gallery1
    |      |       |
    |      |       |--- Pic1.jpg
    |      |       |--- Pic2.jpg
    |      |       |--- Pic3.jpg
    |      | 
    |      |----- Gallery2
    |              |--- Pic1.jpg
    |              |--- Pic2.jpg
    |
    |----- thumbs
           |
           |----- Gallery1
           |       |
           |       |--- Pic1.jpg
           |       |--- Pic2.jpg
           |       |--- Pic3.jpg
           | 
           |----- Gallery2
                   |--- Pic1.jpg
                   |--- Pic2.jpg
    Folgende Konstanten steuern das Script:
    • IMAGESPATH
      Hiermit wird der Pfad zu dem Verzeichnis mit den Bildern eingestellt
    • THUMBSPATH
      THUMBSPATH stellt den Pfad zu den Thumbnails ein
    • MAXIMAGESPERROW
      Hier wird die maximale Anzahl an Bilder pro Reihe angegeben.
    • MAXROWSPERPAGE
      MAXROWSPERPAGE gibt die maximale Anzahl Reihen pro Seite an.
    • SHOWPICCOUNT
      SHOWPICCOUNT kann fuer kleinere Gallerien auf true gesetzt werden. Bei groesseren Gallerien empfehle ich hier auf jeden Fall false, denn ansonsten koennte das ganze Script ein wenig ausgebremst werden.
    Die maximale Anzahl an Bildern pro Seite ist (logischerweise) MAXIMAGESPERROW*MAXROWSPERPAGE.

    Ich hab, wie oben schon angesprochen, eine Blaetterfunktion fuer die Gallerie und auch fuer die Bilder eingebaut, sodass die Gallerie sich ueber mehrere Seiten erstrecken kann und man nach der Auswahl eines Bildes von Bild zu Bild wechseln kann.

    Und nun zum Script:
    gallery.php
    PHP-Code:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
    <title>Image Galleries</title>
    </head>
    <body>
    <?php
    define
    ("IMAGESPATH",'galleries/images');
    define("THUMBSPATH",'galleries/thumbs');
    define("MAXIMAGESPERROW",5);
    define("MAXROWSPERPAGE",4);
    define("SHOWPICCOUNT",false);
    require(
    "directorylist.class.php");
    if (
    SHOWPICCOUNT==true)
        {
            
    $images=new directorylist(IMAGESPATH,true);
        }
    else
        {
            
    $images=new directorylist(IMAGESPATH,true,true);
        }
    if (!empty(
    $_GET['gallery']))
        {
            if (!empty(
    $_GET['image']))
                {
                    if (
    SHOWPICCOUNT==false)
                        {
                            
    $images->subdirs[$_GET['gallery']-1]=new directorylist($images->subdirs[$_GET['gallery']-1]->name,true,true);
                        }
                    
    $name=explode("/",$images->subdirs[$_GET['gallery']-1]->name);
                    
    $name=$name[count($name)-1];
                    echo 
    '<a href="gallery.php?gallery='.$_GET['gallery'].'"><b>'.$name.'</b></a>';
                    echo 
    '<span style="margin-left:100px"><span style="margin-right:5px">';
                    if (
    $_GET['image']>1)
                        {
                            echo 
    '<a href="gallery.php?gallery='.$_GET['gallery'].'&image='.($_GET['image']-1).'"><</a>';
                        }
                    else
                        {
                            echo 
    '<';
                        }
                    echo 
    '</span><span style="margin-left:5px">';
                    if (
    $_GET['image']<count($images->subdirs[$_GET['gallery']-1]->files))
                        {
                            echo 
    '<a href="gallery.php?gallery='.$_GET['gallery'].'&image='.($_GET['image']+1).'">></a>';
                        }
                    else
                        {
                            echo 
    '>';
                        }
                    echo 
    '</span></span>';
                    echo 
    '<a href="gallery.php">Back to the galleries</a><hr>';
                    echo 
    '<img src="'.IMAGESPATH.'/'.$name.'/'.$images->subdirs[$_GET['gallery']-1]->files[$_GET['image']-1].'" alt="'.$images->subdirs[$_GET['gallery']-1]->files[$_GET['image']-1].'">';
                }
            else
                {
                    if (!empty(
    $_GET['page']))
                        {
                            
    $page=$_GET['page'];
                        }
                    else
                        {
                            
    $page=1;
                        }
                    
    $name=explode("/",$images->subdirs[$_GET['gallery']-1]->name);
                    
    $name=$name[count($name)-1];
                    echo 
    '<b>'.$name.'</b>';
                    
    $thumbs=new directorylist(THUMBSPATH.'/'.$name,true,true);
                    
    $pages=ceil(count($thumbs->files)/(MAXIMAGESPERROW*MAXROWSPERPAGE));
                    echo 
    '<span style="margin-left:100px"><span style="margin-right:5px">';
                    if (
    $page>1)
                        {
                            echo 
    '<a href="gallery.php?gallery='.$_GET['gallery'].'&page='.($page-1).'"><</a>';
                        }
                    else
                        {
                            echo 
    '<';
                        }
                    echo 
    '</span><span style="margin-left:5px">';
                    if (
    $page<$pages)
                        {
                            echo 
    '<a href="gallery.php?gallery='.$_GET['gallery'].'&page='.($page+1).'">></a>';
                        }
                    else
                        {
                            echo 
    '>';
                        }
                    echo 
    '</span></span>';
                    echo 
    '<a href="gallery.php">Back to the galleries</a><hr>';
                    
    $x=0;
                    while (
    $x<MAXIMAGESPERROW*MAXROWSPERPAGE)
                        {
                            if (!isset(
    $thumbs->files[$x+($page-1)*MAXIMAGESPERROW*MAXROWSPERPAGE]))
                                {
                                    break;
                                }
                            echo 
    '<a href="gallery.php?gallery='.$_GET['gallery'].'&image='.($x+($page-1)*MAXIMAGESPERROW*MAXROWSPERPAGE+1).'"><img style="border:none; margin:5px;" src="'.THUMBSPATH.'/'.$name.'/'.$thumbs->files[$x+($page-1)*MAXIMAGESPERROW*MAXROWSPERPAGE].'" alt="'.$thumbs->files[$x].'"></a>';
                            
    $x++;
                            if (
    $x%MAXIMAGESPERROW==0)
                                {
                                    echo 
    '';
                                }
                        }
                    unset(
    $thumbs);
                }
        }
    else
        {
            echo 
    '<b>Galleries</b><hr>';
            for (
    $x=0;$x<count($images->subdirs);$x++)
                {
                    
    $name=explode("/",$images->subdirs[$x]->name);
                    
    $name=$name[count($name)-1];
                    echo 
    '<a href="gallery.php?gallery='.($x+1).'">'.$name.'</a>';
                    if (
    SHOWPICCOUNT==true)
                        {
                            echo 
    ' - '.count($images->subdirs[$x]->files).' pictures';
                        }
                    echo 
    '';
                }
        }
    unset(
    $images);
    ?>
    </body>
    </html>
    Fuer die Administration der Gallerien ist dieses Script uebrigens nicht zustaendig, es ist lediglich zur Ausgabe gedacht.

    Viel Spass
    reptiler
    Angehängte Dateien
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

Ähnliche Themen

  1. Antworten: 1
    Letzter Beitrag: 14.07.07, 11:42
  2. [VC++.NET] Flexible Controls mit Language Tag
    Von the incredible Leitman im Forum .NET Windows Forms
    Antworten: 3
    Letzter Beitrag: 24.01.07, 14:59
  3. Antworten: 2
    Letzter Beitrag: 15.02.06, 18:05
  4. Antworten: 1
    Letzter Beitrag: 11.01.02, 15:44

Lesezeichen

Lesezeichen