Suche PHP Foto Gallerie Script

#0
08.08.2005, 14:20
Member
Avatar Camille

Beiträge: 146
#1 Hallo

ich möchte gerne meine Urlaubsfotos einfach im Internet veröffentlichen und suche ein kleines einfaches Script, was meinen Ordner einfach mit Miniaturansichten auflistet und im Internet darstellt.

Leider sind die meisten Gallerie Script overbloat mit Verwaltungssystemen etc. - ich suche was einfaches.

LG Camille
__________
Mach es wie die Sonnenuhr,
zähl´ die heit´ren Stunden nur.
Seitenanfang Seitenende
08.08.2005, 14:23
Administrator
Avatar Lukas

Beiträge: 1739
#2 Hi Camille,

ich verwende immer folgendes PHP Script mit dem Inhalt:
(eine Datei, einfach in den Bilderordner hochladen, der Rest funktioniert von selbst)

PHP Code


<?php
/*
THEPICS lite - a picture gallery generator
Copyright (C) 2001-2003
Website: [url]http://d0x.codesociety.com/[/url]
Email: [email]d0x@codesociety.com[/email]

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
*/

/************ THEPICS lite CONFIGURATION ************/

// Name of your gallery
$subject "My Gallery";

// Short description of your gallery.
$description "...A bunch of pictures.";

// How many images to output per row
$imagesPerRow 4;

// How many images to output per page
$imagesPerPage 12;

// Open single pictures in a new window? [ On | Off ]
$newWindow "off";

// Width of your gallery in relation to the browser's window.
$galleryWidth "80%";

// Gallery sort order [ alpha | date ]
$sort "alpha";

// Height of each thumbnail
$thumbHeight 90;

// Width of each thumbnail. NOTE: Width takes precedence
$thumbWidth 120;

// General color settings
$primarycolor "#FF7818";      //Color for table borders and title text
$backgroundcolor "#FFFFFF";   //Color for the background
$fontcolor "#000000";         //Color for fonts
$linkcolor "#5978FF";         //Color for links
$linkovercolor "#FF8119";     //Color for links (on mouse over)

// Debugging
$showdebug "0";   //Set to "1" to show the page generation time
//error_reporting(E_ALL); //Uncomment this to show all warnings and errors.
//phpinfo();    //Uncomment this to display PHP info.


/************ END THEPICS lite CONFIGURATION ************/

$mtime explode(" "microtime()); //debug timer
$starttime $mtime[1] + $mtime[0];

//Styles
echo "<?xml version='1.0' encoding='iso-8859-1'?>
<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'>
<head>
<title>
$subject</title>
<style type='text/css'>BODY {scrollbar-face-color: 
$backgroundcolor; scrollbar-shadow-color: $primarycolor;
scrollbar-highlight-color: 
$backgroundcolor; scrollbar-3dlight-color: $primarycolor;
scrollbar-darkshadow-color: 
$backgroundcolor; scrollbar-track-color: $backgroundcolor;
scrollbar-arrow-color: echo 
$fontcolor}
.font {font-family : Verdana, Geneva, Arial, Helvetica, Sans-Serif; font-size : 11px; color:
$fontcolor }
.tablestyle {border: 1px solid 
$primarycolor}
a:link,a:visited,a:active {line-height: 140% ;text-decoration:none; color:
$linkcolor;
font-family : Verdana, Geneva, Arial, Helvetica, Sans-Serif; font-size : 12px;}
a:hover {text-decoration:none; color:
$linkovercolor;}
</style>
</head>
<body style='background-color: 
$backgroundcolor;'>";

//Code
if (isset($_GET['pic'])) {
    
// Make sure the file exists; reduces abuse.
    
if (file_exists($_GET['pic'])) {
        
$desc stripslashes(preg_replace("/.jpg/"""$_GET['pic']));
        echo 
"<table style='text-align: center; width: 100%'>
              <tr>
                <td>
                    <span class='font' style='font-size: 18px'>"
$desc"</span><br /><br />
                    <img src="
{$_GET['pic']}" alt="$desc" />
                </td>
              </tr>
              </table>"
;
    }
} else {
    
$rootdir preg_replace("index.php/"""$_SERVER['SCRIPT_FILENAME']);
    
$picsdir $rootdir;
    
$thumbsdir $rootdir 'thumbs/';
    
$thumbpicssitedir 'thumbs/';
    
$numberofmainpics 0;
    
$dir opendir($picsdir);
    while (
$dirdata readdir($dir)) {
        if (
eregi("\.jpg"$dirdata)) {
            
$main[] = $dirdata;
            
$picdates[] = filemtime($dirdata);
            
$numberofmainpics++;
        }
    }

    
closedir($dir);

    
$actionlistfile $main//temp variables
    
$numberofactionpics $numberofmainpics;
    
// Get mainthumblistfile
    
$numberofmainpics 0;
    if (
file_exists($thumbsdir)) {
        
$dir opendir($thumbsdir);
        while (
$dirdata readdir($dir)) {
            if (
eregi("\.jpg"$dirdata)) {
                
$mainthumbs[] = $dirdata;
            }
        }
        
closedir($dir);
    } else {
        if (!@
mkdir($thumbsdir0777)) {
            echo 
"Error: Did you CHMOD the installation directory to 777 ?<br />";
        }
    }

    
$counter 0;
    
$createdhowmanymain 0;
    
$createdhowmanyaction 0;
    foreach(
$main as $mainpic) {
        if (!@
in_array($mainpic$mainthumbs)) {
            
$createmainthumbs[$counter] = $mainpic;
            
$createdhowmanymain++;
            
$counter++;
        }
    }
    
// Find out if we need to create thumbnails or not
    
if ($createdhowmanymain 0) {
        foreach(
$createmainthumbs as $createmain) {
            
makethumb($picsdir $createmain$thumbsdir $createmain$thumbWidth$thumbHeight);
        }
    }

    if (
$description != "") {
        
$showDescription "<span class='font' style='font-size: 12px'>$description<br /><br /></span>";
    }
    
// The follow lines control the Gallery Header.
    
echo "<table style='text-align: center; width: 100%'><tr><td><table cellpadding='5' cellspacing='2' class='tablestyle' width='$galleryWidth'>
                <tr>
                    <td align='center' class='tablestyle'>
                        <span class='font' style='color:
$primarycolor;font-size:32px;'>$subject</span><br />$showDescription
                        <span class='font'>[ <b>
$numberofactionpics</b> pictures ]</span>
                    </td>
                </tr>
                <tr>
                    <td class='tablestyle' style='text-align: center'>"
;
    
// Set inital row and column counts to 1
    
$actionrow 1;
    
$actioncol 0;
    if(
$sort == "date") {
        
arsort($picdatesSORT_NUMERIC);
    }
    else {
        
sort($actionlistfileSORT_STRING); //Sort pictures alphabetically
    
}
    
$pickey array_keys($picdates);
    echo 
'<table cellpadding="5" cellspacing="2">';
    
$multiPage "";
    
$totalpages ceil($numberofactionpics $imagesPerPage);
    
$_GET['page'] = isset($_GET['page']) ? $_GET['page'] : 0;
    if (
$totalpages 1) {
        if ((
$numberofactionpics $_GET['page']) <= $imagesPerPage) { // no next page
                
$page_next "<b>&amp;rarr;</b>";
        } else {
            
$nextpage $_GET['page'] + $imagesPerPage;
            
$page_next "<a href='index.php?page={$nextpage}'><b>&amp;rarr;</b></a>";
        }

        
$thepages "";
        for(
$temp 0$temp $totalpages$temp++) {
            
$gotopage $temp $imagesPerPage;
            
$temp_pagenum $temp 1;

            
$thepages .= ($_GET['page'] == $gotopage) ? "<b>{$temp_pagenum}</b> " "<a href='index.php?page={$gotopage}'>{$temp_pagenum}</a> ";
        }

        if (
$_GET['page'] == 0) { // no prev page
                
$page_previous "<b>&amp;larr;</b>";
        } else {
            
$previouspage $_GET['page'] - $imagesPerPage;
            
$page_previous "<a href='index.php?page={$previouspage}'><b>&amp;larr;</b></a>";
        }

        
$multiPage "<span class='font'>{$page_previous} [ {$thepages}]  {$page_next}</span>";
    }

    if ((
$_GET['page'] + $imagesPerPage) > $numberofactionpics) {
        
$imagesPerPage $numberofactionpics $_GET['page'];
        
$imagesPerPage $imagesPerPage $imagesPerPage $numberofactionpics;
    }
    
// Output the actual images
    
for($x $_GET['page']; $x < ($_GET['page'] + $imagesPerPage) ; $x++) {
        if (
$actioncol == 0) {
            echo 
'<tr>';
        }

        
$sizetemp preg_replace("/ /""%20"$actionlistfile[$pickey[$x]]);
        
$javapicname addslashes($sizetemp);
        
$desc preg_replace("/.jpg/i"""$actionlistfile[$pickey[$x]]);
        
$sizer $picsdir $sizetemp;
        
$openPic = ($newWindow == "On") ? "href="index.php?pic=$javapicname" rel="external"" "href="index.php?pic=$sizetemp"";
        echo 
'<td align="center" style="width: 150px">
                        <a '
$openPic '><img src="thumbs/'$sizetemp '" style="border: 0px" alt="'$desc'" /><br />
                        "'
$desc '"</a></td>';
        
$actioncol++;
        if (
$actioncol == $imagesPerRow) {
            
$actioncol 0;
            echo 
'</tr>';
        }
    }

    echo 
"</tr><tr><td colspan='{$imagesPerRow}' align='center'>$multiPage</td></tr></table></td></tr></table></td></tr></table>";
    
$mtime explode(" "microtime());
    
$totaltime round((($mtime[1] + $mtime[0]) - $starttime), 5);
    
$debug "";
    if (
$showdebug == 1) {
        
$debug "[DEBUG]: Page generated in {$totaltime} seconds";
    }
}
// Version info
$debug = isset($debug) ? $debug "";
echo 
'<div style="text-align: center"><span class="font"><br /><br />'$debug'<br />Powered by
<a href="http://d0x.codesociety.com/" rel="external">THEPICS lite</a> version 1.5.1<br />
Copyright &amp;copy; 2001-2003 <a href="http://d0x.codesociety.com" rel="external">d0x.codesociety.com</a></span></div>
</body></html>'
;

function 
makethumb($image$filename$newwidth$newheight)
{
    
$imagequality 70;
    
$size GetImageSize($image);
    
$ratio $newwidth $newheight;
    if (
$im = @ImageCreateFromJPEG($image)) {
        if (
$newheight &amp;&amp; ($size[0] < $size[1])) {
            
$newwidth = ($newheight $size[1]) * $size[0];
        } else {
            
$newheight = ($newwidth $size[0]) * $size[1];
        }
        
$im2 ImageCreatetruecolor($newwidth$newheight);
        
// Version Dependant setting
        // imageantialias($im2, TRUE);   //for PHP 4.3.2 and up only
        
ImageCopyResized($im2$im0000$newwidth$newheight$size[0], $size[1]);

        if (@
ImageJpeg($im2$filename$imagequality)) {
            return 
true;
        } else {
            echo 
"Error: Did you CHMOD the installation directory to 777 ?<br />";
        }
    }
    echo 
"Error: Thumbnail creation failed for <b>$filename</b>. Is the original picture corrupted?<br />";
    return 
false;
}

?>

^^ XHTML 1.1 ;)

sehr gut ist auch:
http://relativelyabsolute.com/spg/ oder http://qdig.sourceforge.net/

auch nett aber nicht getestet sondern gerade gesehen ist:
http://www.celerondude.com/script_galleryv2
http://coppermine-gallery.net/index.php
http://fennecfoxen.org/pyxy/gallery (nett auf AJAX basierend)
__________
Gruß Lukas :yo
Seitenanfang Seitenende
08.08.2005, 14:36
Member
Avatar Xeper

Beiträge: 5285
#3 Eine app die ich geschrieben habe, multi-user fähig, mysql notwendig, konformes xhtml - kann mit CSS leicht angepasst werden, allerdings vermutlich nichts für newbies:

http://www.ninth-art.de/files/phps/photogallery-12.phps

Die anderen classes die gebraucht werden können unter...
http://www.ninth-art.de/index.php?jumpto=sources
... gefunden werden.

Funktional sieht das ganze dann so aus:
http://www.ninth-art.de/index.php?bypass=photogallery

Wer sich für den mysql Inhalt (structure) interessiert möge mir schreiben.
__________
Email/XMPP: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
14.08.2005, 16:48
Member
Avatar Gool

Beiträge: 4730
#4 Ich könnte auch Gallery empfehlen. Die OpenSource erhält man unter http://gallery.sourceforge.net.
__________
Dies ist eine Signatur! Persönlicher Service: Du kommst aus Berlin? Dann melde Dich per PN bei mir, evtl. können wir einen Termin vereinbaren.
Der Grabsteinschubser
Seitenanfang Seitenende
24.07.2007, 09:39
Member
Avatar Laserpointa

Beiträge: 2171
#5 ich habe auch noch was verflixt schickes gefunden:

http://www.no3dfx.com/polaroid/

Zitat

Ein bisschen schief und ein bisschen schmutzig, frei verschiebbar und per Doppelklick näher zu betrachten. Ein Flasher muss man dazu nicht sein. Alles was man braucht ist im Download-Paket enthalten. Lediglich die XML-Datei muss verändert werden. Dort ist auch Platz für eine Bildunterschrift (Legende). Wer mag kann auch ein Flickr RSS-Feed verwenden. Fotos braucht man in einem passenden, annähernd quadratischen Format, sonst sieht es nicht gut aus.
Greetz Lp
Seitenanfang Seitenende
17.11.2008, 16:17
Member
Avatar Laserpointa

Beiträge: 2171
#6 für alle Mac User sicherlich eine Augenweide und ein genialer Fork:

folgendes Script animiert und ergibt eine wunderschöne, professionelle Foto Slideshow: (Demo + Download (demnächst)):

http://qgallery.quadrifolia.de/

oder auch interessant: http://www.no-margin-for-errors.com/projects/prettyGallery/
und zu guter letzt auch einen Blick wert: http://www.drweb.de/magazin/zenphoto-%E2%80%93-einfache-galleriesoftware/

Greetz Lp
Dieser Beitrag wurde am 24.11.2008 um 14:52 Uhr von Laserpointa editiert.
Seitenanfang Seitenende
05.12.2008, 13:22
...neu hier

Beiträge: 1
#7 Lukas danke , das habe ich gesucht
Seitenanfang Seitenende
25.01.2009, 13:43
Administrator
Avatar Lukas

Beiträge: 1739
#8 mit Flash aber auch mit einer guten Anleitung empfehle ich folgendes sehr schickes Foto Gallerie Script:

http://dezinerfolio.com/dfgallery-2/free-flash-gallery

viel Spass!
__________
Gruß Lukas :yo
Seitenanfang Seitenende
25.02.2009, 20:53
...neu hier

Beiträge: 1
#9 Hi Lucas

hab dein script ausprobiert und als "index.php" in mein Grafikverzeichnis gelegt.
Hier bekomme ich stets die Fehlermeldung:
Parse error: syntax error, unexpected T_VARIABLE, expecting ',' or ';' in /is/htdocs/wp1134872_YCZVUZBXHS/www/images/flyer/index.php on line 92

Kannst du mir da weiterhelfen?

Greetz
Seitenanfang Seitenende
25.02.2009, 23:30
Member
Avatar Gool

Beiträge: 4730
#10 Oh je, da sind viele Fehler in dem Script drin. Lukas ist da aber sicherlich der falsche Ansprechpartner. Das Script ist von dort: http://d0x.codesociety.com/ (und die Seite gibt es nicht mehr)
__________
Dies ist eine Signatur! Persönlicher Service: Du kommst aus Berlin? Dann melde Dich per PN bei mir, evtl. können wir einen Termin vereinbaren.
Der Grabsteinschubser
Seitenanfang Seitenende
05.03.2009, 00:54
Gesperrt

Beiträge: 3
Seitenanfang Seitenende
14.10.2009, 18:05
Member
Avatar Jagge

Beiträge: 702
#12 hier sind auch noch einige hübsche und modernere Foto Gallerie Scripte: http://www.noupe.com/ajax/free-slideshow-gallery-and-lightboxes-scripts.html
Seitenanfang Seitenende
06.01.2010, 11:53
Member
Avatar Laserpointa

Beiträge: 2171
#13 schöne Jquery Slideshow Scripte Sammlung mit Demos findet sich hier:
http://www.1stwebdesigner.com/design/fresh-jquery-image-gallery-display-solutions/
Seitenanfang Seitenende
23.12.2010, 16:19
Member

Beiträge: 3306
#14 Ich habe heute auch eine halbe Ewigkeit nach einer schlanken PHP Lösung gesucht die keine Datenbank benötigt und trotzdem ein bisschen schick aussieht. Gelandet bin ich dann hier:
http://www.tinywebgallery.com/de/overview.php

Die Demos finde ich einigermaßen hässlich und überladen, man kann das ganze aber auch recht schlank und geschmackvoll gestalten.
__________
Bitte keine Anfragen per PM, diese werden nicht beantwortet.
Seitenanfang Seitenende
23.12.2010, 16:54
Member
Avatar Xeper

Beiträge: 5285
#15

Zitat

Ich habe heute auch eine halbe Ewigkeit nach einer schlanken PHP Lösung gesucht die keine Datenbank benötigt...
Naja was spricht bitte gegen eine Datenbank, sonst halt on-disk aber egal.
Und nein XML ist kein Ersatz für eine Datenbank... ;)
__________
Email/XMPP: therion at ninth-art dot de
IRC: megatherion @ Freenode
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: