Zurück tutorials.de > Tutorials > Programming - Tutorials > PHP Codeschnipsel

 
 
Hallo und herzlich willkommen! Tutorials.de ist eine Hilfe-Community mit dem Motto User helfen Usern. Als Gast verfügst Du über Schreibrechte in unseren Foren und Blogs. Du kannst dich aber gerne auch kostenlos registrieren und Teil unserer Gemeinschaft werden! Viel Spaß & Erfolg bei der Vermehrung deines Wissens :-)

Themen: 242.975 | Beiträge: 1.352.293 | Mitglieder: 169.418 (Stand 28.01.10) | Fragen zur Nutzung von Tutorials.de? Nutzungsregeln | Kontaktformular | Impressum

Jubiläums-Countdown 23.02 23.03 23.04 23.05 23.06 23.07 23.08 23.09


4 kostenlose Bücher bei unserer Buch-Verschenkaktion 03/2010
  Tutorial geschlossenGeschlossen    
  Tutorial geschlossenGeschlossen    
 
Tutorial-Optionen Ansicht
Flexible Gallerie mit Blaetterfunktion
Flexible Gallerie mit Blaetterfunktion
Veröffentlicht von Dennis Wronka
18.01.06
Flexible Gallerie mit Blaetterfunktion

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:
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
__________________
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
__________________
Zitat:
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.
Angehängte Dateien
Dateityp: zip gallery.php.zip (1,1 KB, 2710x aufgerufen)

Bewertung
 
Ausführlichkeit
20%20%20%
1
Verständlichkeit
80%80%80%
4
Kompetenz
60%60%60%
3
Gesamteindruck
60%60%60%
3
1 User bewertete mit 55% durchschnittlich

Tutorial-Optionen
 

 
 
Lesezeichen:


Tutorial-Optionen
Ansicht
Ähnliche Themen
 
Tutorial Autor Forum Kommentare Letzter Beitrag
Frage zu "flexible-gallerie-mit-blaetterfunktion" rmb74 PHP 1 14.07.07 11:42
[VC++.NET] Flexible Controls mit Language Tag the incredible Leitman .NET Windows Forms 3 24.01.07 14:59
Flexible Gallerie [Codeschnippsel von Dennis Wronka] versuch13 PHP 2 15.02.06 18:05
Flexible Benutzerverwaltung mit Rechtesystem LukeDogg PHP 1 11.01.02 15:44
» Tools
 
tutorials.de-Tools tutorial.de-Suchfeld tutorial.de-Widget tutorial.de-RSS-Feed tutorial.de-Banner
» Neue Links
 
Hits: 134
»
JHT's Planetary...
(Cinema 4D-Objekte)
Hits: 261
»
Tageslicht ohne GI
(Cinema 4D-Tutorials)
Hits: 149
»
Puzzle
(Cinema 4D-Tutorials)
Hits: 100
»
Lacreme
(Cinema 4D-Tutorials)
Hits: 190
»
Liquid Light
(Cinema 4D-Tutorials)
» Aktuelle Umfrage
 
Bist du mit der Geschwindigkeit der Tutorials.de-Website zufrieden?
Ja, es putzt mir glatt den Staub vom Bildschirm! - 79,79%
150 Stimmen
Nein, ich denke da muss noch nachgebessert werden... - 20,21%
38 Stimmen
Stimmen gesamt: 188
Du darfst bei dieser Umfrage nicht abstimmen.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 04:24 Uhr.


Powered by vBulletin® Version 3.8.5 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.5.0 RC2 ©2010, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,32748 Sekunden mit 33 queries