php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2008

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.11.2008, 14:33  
Neuer Benutzer
 
Registriert seit: 20.11.2008
Beiträge: 5
denis.al befindet sich auf einem aufstrebenden Ast
Standard Online-Fotoalbum

Hallo, Ich habe hier ein Script für ein Online-Fotoalbum.
Infos:
- Blätterfunktion
- Man ladet Bilder hoch, von denen dann automatisch Thumbs erstellt und angezeigt werden mit Link auf das jeweilige (große) Original-Bild
- Das Script hat einen vordefinierten Ordner:
- images <- Hier ladet man die großen Original-Bilder hoch
- images/thumbs <- Hier werden die Thumbs hingespeichert

Funktioniert auch alles wunderbar. Jetzt möchte ich aber dass das Script ohne vordefinierten Ordner arbeitet. Ich möchte mehrere Ordner erstellen und in den jeweiligen Ordnern Bilder hochladen. Das Script soll also erkennen welche Ordner vorhanden sind und NUR die Bilder (Thumbs) anzeigen die in diesem Ordner sind. Ein Fotoalbum mit Unter-Fotoalben so zu sagen

Hier das Script:

PHP-Code:
# Pfad zu den Bildern
$imagePath $_SERVER['DOCUMENT_ROOT'].'de/images/';
// Seitenzahl ermitteln
$go = (!empty($_GET['go'])) ? $_GET['go'] : 1;


$anzeige 9;                 // Zahl der Grafiken die pro Seite angezeigt werden sollen  
$p 2;               // Anzahl der Links die auf der Seite angezeigt werden sollen
$verzeichnis "images/thumbs";        // Verzeichnisbestimmung fuer die Bildausgabe
$verzeichnis2 "images/";

# Verzeichniss für die Thumbnails
$thumbDir 'thumbs/';

# Realtiver Pfad zu den Bildern von diesem Script aus
$imageRelPath 'images/';

# Breite der Thumbnails
$breite 150;

#Hoehe der Thumbnails
$hoehe 94;

# Qualität der Thumbnails
$quality 85;

# Beim nächsten Durchlauf die Thumbs neu erstellen??
$createNew 1;

# Kompletter Thumb Pfad bauen
$thumbPath $imagePath $thumbDir;



Prüfen ob Thumb Verzeichniss existiert. Wenn nicht, anlegen!
if(!is_dir($thumbPath)) {
    
mkdir($thumbPath0777);
}

# Bilderverzeichniss öffnen
$handle=opendir($imagePath);

# und Schleife für jeden Eintrag im Verzeichniss durchlaufen
while ($file2 readdir($handle))
{
    
# Das Thumb Verzeichniss sowie . und .. rausfiltern
    
if ($file2 != "." && $file2 != ".." && $file2 != str_replace('/','',$thumbDir)) {
            
            
# Alle Dateien in ein Array speichern
            
$imageArr[] = $file2;
    }
}

# Die Funktion zum erstellen von Thumbnails aufrufen
createThumb($imageArr);

$oeffnen opendir($verzeichnis);    // oeffnet das angegebene Verzeichnis

//Dateien aus Ordner auslesen
while ($file readdir ($oeffnen)) { 
 
    
// Thumbs ausschliessen
    
if ($file != "." && $file != ".." && $file != "Thumbs.db" && preg_match("/\./",$file)){

        
$array[] = $file// Die Dateien aus dem Ordner werden in ein array gepackt
    
}
}

closedir($oeffnen);         // Schließt den Ordner wieder
sort($array);             // Sortiert das $array


            
                
foreach($array as $file) {     // Hier wird das $array auseindander genommen

                                
$dateienanzahl++;  

                                if(
$dateienanzahl<=$anzeige*$go && $dateienanzahl>$anzeige*($go-1)){
        
                                    
// nur dass aus, was hinter dem .Punkt steht
                                    
$punkt strrchr($file'.');
                                    
//Dateiendung herausfiltern
                                    
$title str_replace($punkt''$file);
        
                    

                    echo  
"<a href=\"$verzeichnis2/$file\"><img src=\"$verzeichnis/$file\" title=\"$title\"  alt=\"$title\"/></a>\n";        
             
            } 
            
            
        } 

# Die funktion zum erstellen von Thumbnails
function createThumb($imageArr) {
    
    
# Variablen in dieser Funktion
    
global $imagePath$thumbPath$breite$quality$createNew;

    
# Schleife mit dem Array der Bilder durchlaufen
    
foreach($imageArr as $image) {
    
        
$fileExists file_exists($thumbPath.$image);
        
# Wenn das noch nicht existiert oder die Variable $createNew gesetzt ist wird das thumbnail erstellt
        
if($createNew != || $fileExists != true ) {
            
$completePath $imagePath.$image;
            
$src imagecreatefromjpeg($completePath);
            list(
$width,$height)=getimagesize($completePath);
            
$hoehe=106;
            
$tmp=imagecreatetruecolor($breite,$hoehe);
            
imagecopyresampled($tmp,$src,0,0,0,0,$breite,$hoehe,$width,$height);
            
imagejpeg($tmp,$thumbPath.$image,$quality);
        }
    }
}


// ---------------------------------- Seitennavigation definieren ---------------------

$pages ceil($dateienanzahl $anzeige); // Anzahl der Seiten ermitteln

// korrigieren der aktuellen Seite
if(empty($_GET['go'])) {
    
$go 1;
} elseif(
$_GET['go'] <= || $_GET['go'] > $pages) {
    
$go 1;
} else {
    
$go $_GET['go'];
}

// Linkkette
$links = array();
$url = ($_SERVER['PHP_SELF']); 

if((
$go $p) < 1){          
  
$prevOffset $go 1;      
}else {          
  
$prevOffset $p;      
}            
if((
$go $p) > $pages) {          
  
$nextOffset $pages $go;      
}else {          
  
$nextOffset $p;      
}          
$off = ($go $prevOffset);    
                
if (
$go$prevOffset 1){          
    
$first 1;
    
$links[] = "<a href=\"$url?go=$first\" title=\"Zur ersten Seite springen\">&laquo; Erste ...</a>\n";      
}      
if(
$go != 1){          
    
$prev $go-1;
    
$links[] = "<a href=\"$url?go=$prev\" title=\"Zurueck zur letzen Seite\"> &laquo;</a>\n";     
}   
       
for(
$i $off$i <= ($go $nextOffset); $i++){  
  if (
$i != $go){              
        
$links[] = "<a href=\"$url?go=$i\" title=\"Seite $i anzeigen\">$i</a>\n";
  }elseif(
$i == $pages) {              
        
// aktuelle Seite, braucht keinen Link
        
$links[] = "<span class=\"current\">[ $i ]</span>\n";  
        }          
  elseif(
$i == $go){              
        
// aktuelle Seite, braucht keinen Link
        
$links[] = "<span class=\"current\">[ $i ]</span>\n";  
        }      
}                
if(
$go != $pages){          
    
$next $go+1;
    
$links[] = "<a href=\"$url?go=$next\" title=\"Weiter zur naechsten Seite\"> &raquo;</a>\n";
}      

if (
$off+$prevOffset*$pages){          
    
// zur letzen Seite springen
    
$last $pages;
    
$links[] = "<a href=\"$url?go=$last\" title=\"Zur letzen Seite springen\">... Letzte &raquo;</a>\n";
}      


// Alle Links in einen String packen
$link_string implode(" &nbsp; "$links); 

 echo 
"<div class=\"navigation\">\n";

 echo 
"<span class=\"pages\">Seite $go von $pages</span>\n";

 echo 
$link_string// Ausgabe der Seitennavigation
 
 
echo "</div>\n"
wär echt nett wenn mir da jemand helfen könnte ich bin am verzweifeln
denis.al ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 20.11.2008, 15:39  
Neuer Benutzer
 
Benutzerbild von DeLoke
 
Registriert seit: 19.11.2008
Beiträge: 15
PHP-Kenntnisse:
Fortgeschritten
DeLoke befindet sich auf einem aufstrebenden Ast
DeLoke eine Nachricht über ICQ schicken
Standard

Hmm die lösung hab ich jetzt nicht, aber ich kenn nen script das genau das tut, wenn keine lösung mehr offen bleibt guck einfach mal Xenotek Fotoseite und schau mal ob du da aus dem Code schlau wirst ... und dir da die Technik mal ansehn wie sowas funktioniert ...

Sonst halt rein Logich würd ich sagen, mehrere verschachtetlte schleifen, ne Maximaltiefe wirst du dabei haben ... aber ich denke norm will man ja keine 10 Unterordner ...

Geändert von DeLoke (20.11.2008 um 15:44 Uhr).
DeLoke ist offline  
Alt 20.11.2008, 15:45  
Neuer Benutzer
 
Registriert seit: 20.11.2008
Beiträge: 5
denis.al befindet sich auf einem aufstrebenden Ast
Standard

naja das bringt mir nichts schließlich wird mir der webmaster wohl kaum sein script geben
denis.al ist offline  
Alt 20.11.2008, 16:41  
Neuer Benutzer
 
Registriert seit: 20.11.2008
Beiträge: 5
denis.al befindet sich auf einem aufstrebenden Ast
Standard

sonst keiner ne idee??
denis.al ist offline  
Alt 20.11.2008, 16:44  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

hör auf zu drängeln, wir sind nicht nur für dich hier.
cycap ist offline  
Alt 20.11.2008, 16:45  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
ich bin am verzweifeln
Ja genau

Eine Pauschalantwort kanns gar nicht geben, weil Du nicht genau geschrieben hast, wie die Umsetzung sein soll.
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 20.11.2008, 16:46  
PTC
Erfahrener Benutzer
 
Benutzerbild von PTC
 
Registriert seit: 27.10.2007
Beiträge: 1.708
PHP-Kenntnisse:
Anfänger
PTC ist einfach richtig nettPTC ist einfach richtig nettPTC ist einfach richtig nettPTC ist einfach richtig nett
Standard

Irgendwelche Ideen oder Lösungsansätze??(Für mich liegt die Lösung, in verschiedenen Facetten auf der Hand)

Hör auf zu drängeln, dass hilft auch nicht.

edit: Tja, zu langsam!
PTC ist offline  
Alt 21.11.2008, 08:10  
Neuer Benutzer
 
Registriert seit: 20.11.2008
Beiträge: 5
denis.al befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Eine Pauschalantwort kanns gar nicht geben, weil Du nicht genau geschrieben hast, wie die Umsetzung sein soll.
naja im Prinzip geht es ja um die Verzeichnis-Variablen:
- # Pfad zu den Bildern
$imagePath = $_SERVER['DOCUMENT_ROOT'].'de/images/';

- $verzeichnis = "images/thumbs"; // Verzeichnisbestimmung fuer die Bildausgabe
- $verzeichnis2 = "images/";

- # Verzeichniss für die Thumbnails
$thumbDir = 'thumbs/';

- # Realtiver Pfad zu den Bildern von diesem Script aus
$imageRelPath = 'images/';

Diese sollen eben nicht vordefiniert sein sondern er soll den ordner der z.b. fotoalbum heißt auslesen und anzeigen. Bei Klick auf den jeweiligen Ordner werden dann die Bilder von diesem album angezeigt.
denis.al ist offline  
Alt 21.11.2008, 10:08  
Erfahrener Benutzer
 
Benutzerbild von byFd
 
Registriert seit: 06.11.2008
Beiträge: 154
byFd befindet sich auf einem aufstrebenden Ast
Standard

Schau dir mal die Verzeichnis Funktionen und glob an. Wenn ich dich richtig verstanden habe, kannst du dein Vorhaben damit bewerkstelligen.
byFd ist offline  
Alt 21.11.2008, 10:56  
Neuer Benutzer
 
Registriert seit: 20.11.2008
Beiträge: 5
denis.al befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Zitat von byFd Beitrag anzeigen
Schau dir mal die Verzeichnis Funktionen und glob an. Wenn ich dich richtig verstanden habe, kannst du dein Vorhaben damit bewerkstelligen.
danke genau das hab ich bereits vorhin gemacht, ich bin auch schon ein stück weiter gekommen

PHP-Code:
$dir "./"
    
$od opendir($dir); 

        while(
$imagePath2=readdir($od)) { 
            if(
is_dir($imagePath2) && $imagePath2 != "." && $imagePath2 != ".." && $imagePath2 == "fotoalbum") { 
                
                 
$dir2 $imagePath2
                     
$od2 opendir($dir2); 
              
             while(
$rd2=readdir($od2)){ 
             
    
                if(
$rd2 != "." && $rd2 != "..") { 
            
                     
                    echo 
"$rd2<br>"
                 
                
             }
            
            }
            
            } 
            
            
        } 
also es werden jetzt die ordner in "fotoalbum" angezeigt. Jetzt muss ich es aber noch hinkriegen die ausgabe einzubinden.

Ausgabe:
PHP-Code:
echo  "<a href=\"$verzeichnis2/$file\"><img src=\"$verzeichnis/$file\" title=\"$title\"  alt=\"$title\"/></a>\n"
Am einfachsten wäre es dieses <a href in einem anderem <a href einzubinden. Also wenn man auf $rd2 klickt soll er den Ausgabe-Link aufrufen.
Habe ich auch schon gemacht aber irgendwie kommt er mit 2 <a href ineinander nicht klar er zeigt mir die 2 ordner an aber ohne link.

PHP-Code:
echo  "<a href=\"<a href=\"$verzeichnis2/$file\"><img src=\"$verzeichnis/$file\" title=\"$title\"  alt=\"$title\"></a>\">$rd2</a>"
denis.al ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
XAMPP ONLINE! CHRIS PHP Tipps 2005-2 13 02.10.2009 09:03
Online Entwickler PHP (m/w) - Festanstellung - München BTDNewmedia Beitragsarchiv 0 07.11.2008 11:44
ermitteln wer online ist Funky_ PHP Tipps 2006 4 10.08.2006 12:13
Online Funktion .. xuriorene PHP Tipps 2006 3 20.04.2006 20:15
Online Statistik PHP Tipps 2006 1 08.01.2006 13:21
Online Datenbank ! PHP Tipps 2005-2 3 23.09.2005 22:15
Datenbank wird online nicht ausgelesen PHP Tipps 2005 7 27.05.2005 13:20
Suche Script zum anzeigen wer gerade Online ist Beitragsarchiv 7 02.03.2005 20:24
Mitglieder online problem Datenbanken 2 16.11.2004 12:12
[Erledigt] Chat für 2 - Brauche Anzeige ob Gegenpart online ist PHP Tipps 2004 7 05.10.2004 22:51
User online? Creativ PHP Tipps 2004 1 17.08.2004 22:34
User online Simon9990 PHP Tipps 2004 8 17.06.2004 00:25

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
fotoalbum mit blätterfunktion script, online fotoalbum php, html seitennavigation blätterfunktion, fotoalbum mit blätterfunktion

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:22 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum