Ja, ich weiß. Bildergalerien gibt's viele. Wollte aber meine eigene und hier ist sie!
Würde mich freuen, wenn sie der/die eine oder andere gebrauchen kann.
FEATURES
* Automatische Erstellung von Thumbnails wenn neues Bild in Ordner geladen wird
* Automatische Entfernung von Thumbnails wenn Bild aus Ordner gelöscht wird
* Größe der Thumbnails wählbar
* Auswahl des Bilderordners per Dropdownliste
* Anzahl der Zeilen und Spalten der Thumbnailvorschau frei wählbar
* Einfaden der Bilder nein/ ja, inkl. Geschwindigkeit
* Positionierung der Bildernavigation ober- und/oder unterhalb der Bilder
* Bilder werden alphabetisch auf- oder absteigend angezeigt (neu seit 12.02.2010, Codes unten wurden angepasst, ebenso die Download-zip)
* Thumbnailseiten blätter- oder direkt anwählbar
* Anzeige von Exifdaten (Welche Daten angezeigt werden, können im Output durch // ggf. auskommentiert werden.)
* Anzeige von Bildbeschreibungen (Description aus der Dateiverwaltung von Contenido)
* Freie Gestaltungsmöglichkeiten durch umfassende css-Klassen
Zu sehen gibt's die Galerie zum Beispiel hier: http://www.seamless-design.de/cms/front ... p?idcat=64
INSTALLATION
1. Anlegen der beiden Module
Notwendige Anpassungen im Output "bildergalerie_sd_vorschau":
-$url_allgemein
Notwendige Anpassungen im Output "bildergalerie_sd_detail":
-$dir (Grundverzeichnis der Bilderorder, standardmäßig auf "upload" verweisend)
-$url_allgemein
2. Anlegen eines Templates für die Thumbnailvorschau und Einbinden des Moduls
3. Anlegen eines Templates für die Bildanzeige und Einbinden des Moduls
4. Einbinden und ggf. Anpassen der css-Klassen
5. Upload eines Ordners mit Bildern
6. Anlegen einer Kategorie
7. Anlegen eines Artikels mit der Thumbnailvorschau (als Startartikel markieren) in dieser Kategorie
8. Anlegen eines Artikels mit der Bildanzeige in dieser Kategorie
9. Einrichten der Konfiguration beider Artikel:
Modul "bildergalerie_sd_vorschau" INPUT:
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : bildergalerie_sd_vorschau
* Author(s) : www.Seamless-Design.de Markus Hübner
* Copyright : www.Seamless-Design.de Markus Hübner
* Created : 29.10.2009
************************************************/
#Selected img directory
$cms_dirname = "CMS_VALUE[1]";
if ($cms_dirname == '' || $cms_dirname == '0') {
$cms_dirname = 'bilder/';
}
#Get paths
$sql = "SELECT
htmlpath, frontendpath
FROM
".$cfg["tab"]["clients"]."
WHERE
idclient = ".$client." ";
$db->query($sql);
if ($db->next_record()) {
$htmlpath = $db->f('htmlpath');
$frontendpath = $db->f('frontendpath');
}
#Choose icon folder
echo '<table cellpadding="0" cellspacing="0" border="0">';
/*------------------------------------------*/
#Choose Image folder
#Selected image directory
$cms_dirname = "CMS_VALUE[2]";
echo '<tr><td>'.mi18n("Verzeichnis der Bilddateien wählen").': </td>
<td>';
echo '<select name="CMS_VAR[2]"';
#Get upload directories
$sql = "SELECT DISTINCT
dirname
FROM
".$cfg["tab"]["upl"]."
WHERE
idclient='$client' AND
filetype IN ('jpeg','jpg','gif','png','JPG','JPEG')
ORDER BY
dirname";
$db->query($sql);
$selected = false;
while ($db->next_record()) {
$dirname = $db->f('dirname');
if ($cms_dirname != $dirname) {
echo '<option value="'.$dirname.'"> '.$dirname.'</option>';
} else {
$selected = true;
echo '<option value="'.$dirname.'" selected="selected"> '.$dirname.'</option>';
}
}
if (!$selected) {
echo '<option value="0" selected="selected">'.i18n("Bitte wählen").'</option>';
} else {
echo '<option value="0">'.i18n("Bitte wählen").'</option>';
}
echo "</select></td></tr>";
/*------------------------------------------*/
echo "<tr><td>ID-Art Vorschauseite: </td><td><input size=3 type=\"text\" name=\"CMS_VAR[20]\" value=\"CMS_VALUE[20]\"></td></tr>";
echo "<tr><td>ID-Art Detailseite: </td><td><input size=3 type=\"text\" name=\"CMS_VAR[30]\" value=\"CMS_VALUE[30]\"></td></tr>";
echo "<tr><td>Anzahl Spalten Vorschaubiler pro Seite: </td><td><input size=3 type=\"text\" name=\"CMS_VAR[40]\" value=\"CMS_VALUE[40]\"></td></tr>";
echo "<tr><td>Anzahl Zeilen Vorschaubilder pro Seite: </td><td><input size=3 type=\"text\" name=\"CMS_VAR[50]\" value=\"CMS_VALUE[50]\"></td></tr>";
echo "<tr><td>Sortierung statt aufsteigend absteigend? </td><td>";
if ("CMS_VALUE[52]" != "true") {
echo ' <input type="checkbox" name="CMS_VAR[52]" value="true"> ja';
} else {
echo ' <input type="checkbox" name="CMS_VAR[52]" value="true" checked> ja';
}
echo "</td></tr>";
echo "<tr><td>Größe Thumbnail (längste Seite): </td><td><input size=3 type=\"text\" name=\"CMS_VAR[55]\" value=\"CMS_VALUE[55]\">px</td></tr>";
echo "<tr><td>Text für 'zurück': </td><td><input size=45 type=\"text\" name=\"CMS_VAR[60]\" value=\"CMS_VALUE[60]\"></td></tr>";
echo "<tr><td>Text für 'Abgrenzer': </td><td><input size=45 type=\"text\" name=\"CMS_VAR[70]\" value=\"CMS_VALUE[70]\"></td></tr>";
echo "<tr><td>Text für 'weiter': </td><td><input size=45 type=\"text\" name=\"CMS_VAR[80]\" value=\"CMS_VALUE[80]\"></td></tr>";
echo "<tr><td>Navigation: </td><td>";
if ("CMS_VALUE[90]" != "true") {
echo ' <input type="checkbox" name="CMS_VAR[90]" value="true"> oben';
} else {
echo ' <input type="checkbox" name="CMS_VAR[90]" value="true" checked> oben';
}
if ("CMS_VALUE[95]" != "true") {
echo ' <input type="checkbox" name="CMS_VAR[95]" value="true"> unten';
} else {
echo ' <input type="checkbox" name="CMS_VAR[95]" value="true" checked> unten';
}
echo "</td></tr>";
echo "</table>";
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : bildergalerie_sd_vorschau
* Author(s) : www.Seamless-Design.de Markus Hübner
* Copyright : www.Seamless-Design.de Markus Hübner
* Created : 29.10.2009
************************************************/
$dir_start=getcwd(); // notwendig um am Schluss in dieses Verzeichnis zurückzuwechseln damit Modultemplates folgender Module gefunden werden können.
$dir_vorschau="upload/CMS_VALUE[2]vorschau/"; // Verzeichnis Vorschaubilder
$dir="upload/CMS_VALUE[2]"; // Verzeichnis Bilder
$url_allgemein="http://www.seamless-design.de/cms/";
$url_vorschau=$url_allgemein."front_content.php?idart=CMS_VALUE[20]"; // url der Vorschauseite
$url_detail=$url_allgemein."front_content.php?idart=CMS_VALUE[30]"; // url der Detailseite
$dir_start=getcwd(); // merkt sich das anfänglich geöffnete Verzeichnis
$anzahl_spalten="CMS_VALUE[40]";
$counter_anzahl_spalten=1;
$anzahl_zeilen="CMS_VALUE[50]";
$sortierung_absteigend="CMS_VALUE[52]";
$text_zurueck="CMS_VALUE[60]";
$text_abgrenzer="CMS_VALUE[70]";
$text_weiter="CMS_VALUE[80]";
$navigation_oben="CMS_VALUE[90]";
$navigation_unten="CMS_VALUE[95]";
$counter_bilder=0;
$anzahl_bilder_pro_seite=$anzahl_spalten*$anzahl_zeilen;
if (htmlspecialchars($_GET['seite'])!="") {$seite=htmlspecialchars($_GET['seite']);} else {$seite=0;}
/*---------------------------------------------------------------*/
/*Ordner Vorschau für Thumbs generieren wenn noch nicht vorhanden*/
/*---------------------------------------------------------------*/
if (is_dir($dir_vorschau))
{
}
else
{
mkdir($dir_vorschau);
}
/*---------------------------------------*/
/*Thumbs generieren und/ oder löschen*/
/*---------------------------------------*/
$fotoPfad = $dir;
$thumbPfad = $dir_vorschau;
function checkThumbnail($bild)
{
global $fotoPfad;
global $thumbPfad;
$fotoZeit= filemtime($fotoPfad.$bild);
$thumbZeit = @filemtime($thumbPfad.$bild); //Sollte kein Bild vorhanden sein ist das Ergebnis auch 0 und das reicht uns.
if ($fotoZeit> $thumbZeit)
{
createThumb($bild);
}
}
function eraseThumbnail ($bild)
{
global $fotoPfad;
global $thumbPfad;
if(file_exists($fotoPfad.$bild))
{
}
else
{
unlink($thumbPfad.$bild);
}
}
function createThumb($bild)
{
$thumblaengsteseite=CMS_VALUE[55];
global $fotoPfad;
global $thumbPfad;
$size=getimagesize("$fotoPfad"."$bild");
$breite=$size[0];
$hoehe=$size[1];
if ($breite>$hoehe)
{
$thumbBreite=$thumblaengsteseite;
$thumbHoehe=$hoehe/($breite/$thumbBreite);
}
else
{
$thumbHoehe=$thumblaengsteseite;
$thumbBreite=$breite/($hoehe/$thumbHoehe);
}
$altesBild=ImageCreateFromJPEG("$fotoPfad"."$bild");
$neuesBild=imageCreateTrueColor($thumbBreite,$thumbHoehe);
imageCopyResampled($neuesBild,$altesBild,0,0,0,0,$thumbBreite,$thumbHoehe,$breite,$hoehe);
ImageJPEG($neuesBild,"$thumbPfad"."$bild",85);
}
$verz=opendir ($fotoPfad);
while ($file=readdir($verz))
{
if (filetype($fotoPfad.$file)!="dir")
{
checkThumbnail($file);
}
}
closedir($verz);
$verz=opendir ($thumbPfad);
while ($file=readdir($verz))
{
if (filetype($thumbPfad.$file)!="dir")
{
eraseThumbnail($file);
}
}
closedir($verz);
/*-------------------------------------*/
chdir($dir_vorschau); // wechselt in das Verzeichnis der Vorschaubilder
$array = glob("*");
if ($sortierung_absteigend=="true")
{
$array = array_reverse($array);
ksort($array);
}
$anzahl_bilder_gesamt=count($array);
$seiten_gesamt=$anzahl_bilder_gesamt/$anzahl_bilder_pro_seite; //ergibt ggf. eine ungerade Zahl
chdir($dir_start);
$nachkommastellen=strstr($seiten_gesamt, ".");
$seiten_gesamt=(int)$seiten_gesamt; //ungerade Zahl wird nach dem Komma abgeschnitten
if ($nachkommastellen!="0") {$seiten_gesamt=$seiten_gesamt+1;} // abgeschnittene Zahl wird um 1 erhöht wenn Nachkommastellen vorhanden waren
/*************** Beginn der Darstellung ******************/
$seite_weiter=$seite+1;
$seite_zurueck=$seite-1;
$aktuelle_seite=$seite+1; // Seitenanzeige sonst bei 0 beginnend
$counter_seitenanzeige=0;
$umbruch_seitenanzeige=50;
$counter_umbruch_seitenanzeige=0;
if ($navigation_oben=="true")
{
if ($seiten_gesamt>1) // nur wenn mehr als 1 Vorschauseite vorhanden ist macht die Seitennavigation Sinn
{
echo "<div class=\"bildergalerie_sd_menue_vorschau\">";
if ($seite_zurueck>=0) {echo "<a class=\"bildergalerie_sd_vorschau\" href=\"$url_vorschau&seite=$seite_zurueck\">".$text_zurueck."</a>";}
echo $text_abgrenzer;
while ($counter_seitenanzeige<$seiten_gesamt)
{
$seitenanzeige=$counter_seitenanzeige+1;
if ($aktuelle_seite==$seitenanzeige) {echo "<a class=\"bildergalerie_sd_seitenwaehler_active\" href=\"$url_vorschau&seite=$counter_seitenanzeige\">".$seitenanzeige."</a> ";}
if ($aktuelle_seite!=$seitenanzeige) {echo "<a class=\"bildergalerie_sd_seitenwaehler_passive\" href=\"$url_vorschau&seite=$counter_seitenanzeige\">".$seitenanzeige."</a> ";}
$counter_seitenanzeige=$counter_seitenanzeige+1;
$counter_umbruch_seitenanzeige=$counter_umbruch_seitenanzeige+1;
if ($counter_umbruch_seitenanzeige==$umbruch_seitenanzeige) {echo "<br>"; $counter_umbruch_seitenanzeige=0;}
}
echo $text_abgrenzer;
if ($seite_weiter<$seiten_gesamt) {echo "<a class=\"bildergalerie_sd_vorschau\" href=\"$url_vorschau&seite=$seite_weiter\">".$text_weiter."</a>";}
echo "</div>";
}
}
echo "<div class=\"bildergalerie_sd\">";
echo "<table class=\"bildergalerie_sd\"><tr>";
//echo "Bilder gesamt: ".$anzahl_bilder_gesamt."<br>";
while ($counter_bilder<$anzahl_bilder_pro_seite AND $counter_bilder<$anzahl_bilder_gesamt)
{
$arrayzeiger=$seite*$anzahl_bilder_pro_seite+$counter_bilder;
$filename="$array[$arrayzeiger]";
echo "<td class=\"bildergalerie_sd\">";
if ($arrayzeiger<$anzahl_bilder_gesamt) {echo "<div class=\"bildergalerie_sd_bild_vorschau\"><a class=\"bildergalerie_sd_bildlink\" href=\"$url_detail&verzeichnis=$dir&dateiname=$filename&seite=$seite&anzahl_bilder_pro_seite=$anzahl_bilder_pro_seite&sortierung_absteigend=$sortierung_absteigend\"><img class=\"bildergalerie_sd_bild_vorschau\" src=\"$dir_vorschau$array[$arrayzeiger]\" alt=\"Bildvorschau\"/></a></div>";}
echo "</td>";
if ($counter_anzahl_spalten==$anzahl_spalten) {echo "</tr><tr>";$counter_anzahl_spalten=0;}
$counter_bilder=$counter_bilder+1;
$counter_anzahl_spalten=$counter_anzahl_spalten+1;
}
echo "</tr></table>";
echo "</div>";
if ($navigation_unten=="true")
{
$counter_seitenanzeige=0;
if ($seiten_gesamt>1) // nur wenn mehr als 1 Vorschauseite vorhanden ist macht die Seitennavigation Sinn
{
echo "<div class=\"bildergalerie_sd_menue_vorschau\">";
if ($seite_zurueck>=0) {echo "<a class=\"bildergalerie_sd_vorschau\" href=\"$url_vorschau&seite=$seite_zurueck\">".$text_zurueck."</a>";}
echo $text_abgrenzer;
while ($counter_seitenanzeige<$seiten_gesamt)
{
$seitenanzeige=$counter_seitenanzeige+1;
if ($aktuelle_seite==$seitenanzeige) {echo "<a class=\"bildergalerie_sd_seitenwaehler_active\" href=\"$url_vorschau&seite=$counter_seitenanzeige\">".$seitenanzeige."</a> ";}
if ($aktuelle_seite!=$seitenanzeige) {echo "<a class=\"bildergalerie_sd_seitenwaehler_passive\" href=\"$url_vorschau&seite=$counter_seitenanzeige\">".$seitenanzeige."</a> ";}
$counter_seitenanzeige=$counter_seitenanzeige+1;
$counter_umbruch_seitenanzeige=$counter_umbruch_seitenanzeige+1;
if ($counter_umbruch_seitenanzeige==$umbruch_seitenanzeige) {echo "<br>"; $counter_umbruch_seitenanzeige=0;}
}
echo $text_abgrenzer;
if ($seite_weiter<$seiten_gesamt) {echo "<a class=\"bildergalerie_sd_vorschau\" href=\"$url_vorschau&seite=$seite_weiter\">".$text_weiter."</a>";}
echo "</div>";
}
}
?>
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : bildergalerie_sd_detail
* Author(s) : www.Seamless-Design.de Markus Hübner
* Copyright : www.Seamless-Design.de Markus Hübner
* Created : 29.10.2009
************************************************/
echo '<table>';
echo "<tr><td>Beschreibungen anzeigen</td><td>";
if ("CMS_VALUE[10]" != "true") {
echo ' <input type="radio" name="CMS_VAR[10]" value="true"> ja';
} else {
echo ' <input type="radio" name="CMS_VAR[10]" value="true" checked> ja';
}
if ("CMS_VALUE[10]" != "false") {
echo ' <input type="radio" name="CMS_VAR[10]" value="false"> nein';
} else {
echo ' <input type="radio" name="CMS_VAR[10]" value="false" checked> nein';
}
echo "</td></tr>";
echo "<tr><td>Text wenn keine Beschreibung vorhanden ist: </td><td><input size=20 type=\"text\" name=\"CMS_VAR[15]\" value=\"CMS_VALUE[15]\"> (frei lassen, wenn nichts angezeigt werden soll)</td></tr>";
echo "<tr><td>Exif-Daten anzeigen: </td><td>";
if ("CMS_VALUE[16]" != "true") {
echo ' <input type="radio" name="CMS_VAR[16]" value="true"> ja';
} else {
echo ' <input type="radio" name="CMS_VAR[16]" value="true" checked> ja';
}
if ("CMS_VALUE[16]" != "false") {
echo ' <input type="radio" name="CMS_VAR[16]" value="false"> nein';
} else {
echo ' <input type="radio" name="CMS_VAR[16]" value="false" checked> nein';
}
echo "</td></tr>";
echo "<tr><td>Bilder einfaden: </td><td>";
if ("CMS_VALUE[17]" != "true") {
echo ' <input type="radio" name="CMS_VAR[17]" value="true"> ja';
} else {
echo ' <input type="radio" name="CMS_VAR[17]" value="true" checked> ja';
}
if ("CMS_VALUE[17]" != "false") {
echo ' <input type="radio" name="CMS_VAR[17]" value="false"> nein';
} else {
echo ' <input type="radio" name="CMS_VAR[17]" value="false" checked> nein';
}
echo "</td></tr>";
echo "<tr><td>Geschwindigkeit Einfaden: </td><td><input size=3 type=\"text\" name=\"CMS_VAR[18]\" value=\"CMS_VALUE[18]\"> (je kleiner die Zahl, desto schneller)</td></tr>";
echo "<tr><td>ID-Art Vorschauseite: </td><td><input size=3 type=\"text\" name=\"CMS_VAR[30]\" value=\"CMS_VALUE[30]\"></td></tr>";
echo "<tr><td>ID-Art Detailseite: </td><td><input size=3 type=\"text\" name=\"CMS_VAR[40]\" value=\"CMS_VALUE[40]\"></td></tr>";
echo "<tr><td>Text vorheriges Bild: </td><td><input size=20 type=\"text\" name=\"CMS_VAR[50]\" value=\"CMS_VALUE[50]\"></td></tr>";
echo "<tr><td>Text Übersicht: </td><td><input size=20 type=\"text\" name=\"CMS_VAR[60]\" value=\"CMS_VALUE[60]\"></td></tr>";
echo "<tr><td>Text nächstes Bild: </td><td><input size=20 type=\"text\" name=\"CMS_VAR[70]\" value=\"CMS_VALUE[70]\"></td></tr>";
echo "<tr><td>Navigation: </td><td>";
if ("CMS_VALUE[80]" != "true") {
echo ' <input type="checkbox" name="CMS_VAR[80]" value="true"> oben';
} else {
echo ' <input type="checkbox" name="CMS_VAR[80]" value="true" checked> oben';
}
if ("CMS_VALUE[85]" != "true") {
echo ' <input type="checkbox" name="CMS_VAR[85]" value="true"> unten';
} else {
echo ' <input type="checkbox" name="CMS_VAR[85]" value="true" checked> unten';
}
echo "</td></tr>";
echo "</table>";
Code: Alles auswählen
<script type="text/javascript">
<!--
IE = document.all &&!window.opera;
GK = window.sidebar;
AOB = [];
x = 0;
function Fader()
{
this.timeOut=false;
this.fade=function(y)
{
clearTimeout(this.timeOut);
this.value=Number(eval('this.object.'+this.attr))+(this.delta*this.evt[y]);
if(this.value>=this.min && this.value<=this.max)
{
eval('this.object.'+this.attr+'='+this.value)
this.timeOut=setTimeout('AOB['+this.index+'].fade('+y+')',this.rate);
}
}
}
function init_fader(obj,delta,rate,min,max,dir)
{
AOB.push(new Fader(x));
OB = AOB[x];
OB.index = x;
OB.object = obj;
if(IE)
{
OB.attr = 'filters.alpha.opacity';
OB.faktor = 1;
}
else if(GK)
{
OB.attr = 'style.MozOpacity';
OB.faktor = 100;
}
else
{
OB.attr = 'style.opacity';
OB.faktor = 100;
}
OB.delta = delta/OB.faktor;
OB.rate = rate;
OB.min = min/OB.faktor;
OB.max = max/OB.faktor;
OB.evt=[-1,1];if(dir)OB.evt.reverse();
OB.object.onload = new Function('f1','AOB['+x+'].fade(0)');
OB.fade(0);x++;
}
OB.object.onmouseover = new Function('f1','AOB['+x+'].fade(0)');
OB.object.onmouseout = new Function('f2','AOB['+x+'].fade(1)');
//-->
</script>
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : bildergalerie_sd_detail
* Author(s) : www.Seamless-Design.de Markus Hübner
* Copyright : www.Seamless-Design.de Markus Hübner
* Created : 29.10.2009
************************************************/
$verzeichnis=htmlspecialchars($_GET['verzeichnis']);
$datei=htmlspecialchars($_GET['dateiname']);
$dir=htmlspecialchars($_GET['verzeichnis']);
$seite=htmlspecialchars($_GET['seite']);
$anzahl_bilder_pro_seite=htmlspecialchars($_GET['anzahl_bilder_pro_seite']);
$sortierung_absteigend=htmlspecialchars($_GET['sortierung_absteigend']);
$dir_mysql=substr($dir,7); // die ersten 7 Zeichen, d.h. der ordner "upload/" wird gekürzt, da in der tabelle con_upl der dirname ohne "upload/" eingetragen wird
$beschreibung_anzeigen="CMS_VALUE[10]";
$beschreibung_fehlt="CMS_VALUE[15]";
$exifdaten_anzeigen="CMS_VALUE[16]";
$bilder_einfaden="CMS_VALUE[17]";
$geschwindigkeit_einfaden="CMS_VALUE[18]";
$url_allgemein="http://www.seamless-design.de/cms/";
$url_vorschau=$url_allgemein."front_content.php?idart=CMS_VALUE[30]";
$url_detailansicht=$url_allgemein."front_content.php?idart=CMS_VALUE[40]";
$text_vorheriges_bild="CMS_VALUE[50]";
$text_uebersicht="CMS_VALUE[60]";
$text_naechstes_bild="CMS_VALUE[70]";
$navigation_oben="CMS_VALUE[80]";
$navigation_unten="CMS_VALUE[85]";
$dir_start=getcwd();
/*------------------------------Beginn function exifdaten------------------------------*/
function exifdaten($bild) {
$exif = exif_read_data($bild, "" , true,false);
$datum = $exif["EXIF"]["DateTimeOriginal"];
if ($datum!="")
{
$exiferror="false";
list($date, $time) = explode(" ", $datum);
list($jahr, $monat, $tag) = explode(":",$date);
list($stunde, $minute, $secunde) = explode(":", $time);
$timestamp = mktime($stunde, $minute, $secunde, $monat, $tag, $jahr);
$datum_formatiert=date("d.m.Y H:i:s", $timestamp);
$belichtungsmodus = $exif["EXIF"]["ExposureMode"];
if ($belichtungsmodus==0) {$belichtungsmodus="Automatische Belichtung";}
if ($belichtungsmodus==1) {$belichtungsmodus="Manuelle Belichtung";}
if ($belichtungsmodus==2) {$belichtungsmodus="Auto Bracket";}
$belichtungsmessung = $exif["EXIF"]["MeteringMode"];
if ($belichtungsmessung==0) {$belichtungsmessung="unbekannt";}
if ($belichtungsmessung==1) {$belichtungsmessung="durchschnittlich";}
if ($belichtungsmessung==2) {$belichtungsmessung="mittenbetont";}
if ($belichtungsmessung==3) {$belichtungsmessung="Spot";}
if ($belichtungsmessung==4) {$belichtungsmessung="Multispot";}
if ($belichtungsmessung==5) {$belichtungsmessung="Raster";}
if ($belichtungsmessung==6) {$belichtungsmessung="selektiv";}
$belichtungsprogramm = $exif["EXIF"]["ExposureProgram"];
if ($belichtungsprogramm==0) {$belichtungsprogramm="unbekannt";}
if ($belichtungsprogramm==1) {$belichtungsprogramm="manuell";}
if ($belichtungsprogramm==2) {$belichtungsprogramm="Automatik";}
if ($belichtungsprogramm==3) {$belichtungsprogramm="Blendenpriorität";}
if ($belichtungsprogramm==4) {$belichtungsprogramm="Verschlusszeitpriorität";}
if ($belichtungsprogramm==5) {$belichtungsprogramm="Kreativ";}
if ($belichtungsprogramm==6) {$belichtungsprogramm="Sport";}
if ($belichtungsprogramm==7) {$belichtungsprogramm="Portrait";}
if ($belichtungsprogramm==8) {$belichtungsprogramm="Landschaft";}
$weissabgleich = $exif["EXIF"]["WhiteBalance"];
if ($weissabgleich==0) {$weissabgleich="Auto";}
if ($weissabgleich==1) {$weissabgleich="Tageslicht";}
if ($weissabgleich==2) {$weissabgleich="Fluorescent";}
if ($weissabgleich==3) {$weissabgleich="Incandescent";}
if ($weissabgleich==4) {$weissabgleich="Blitz";}
if ($weissabgleich==9) {$weissabgleich="Sonne";}
if ($weissabgleich==10) {$weissabgleich="bewölkt";}
if ($weissabgleich==11) {$weissabgleich="Schatten";}
if (isset($exif["EXIF"]["Flash"]) ) {
switch($exif["EXIF"]["Flash"]) {
case 0:
$fbexif_flash = 'Flash did not fire';
break;
case 1:
$fbexif_flash = 'Flash fired';
break;
case 5:
$fbexif_flash = 'Strobe return light not detected';
break;
case 7:
$fbexif_flash = 'Strobe return light detected';
break;
case 9:
$fbexif_flash = 'Flash fired, compulsory flash mode';
break;
case 13:
$fbexif_flash = 'Flash fired, compulsory flash mode, return light not detected';
break;
case 15:
$fbexif_flash = 'Flash fired, compulsory flash mode, return light detected';
break;
case 16:
$fbexif_flash = 'Flash did not fire, compulsory flash mode';
break;
case 24:
$fbexif_flash = 'Flash did not fire, auto mode';
break;
case 25:
$fbexif_flash = 'Flash fired, auto mode';
break;
case 29:
$fbexif_flash = 'Flash fired, auto mode, return light not detected';
break;
case 31:
$fbexif_flash = 'Flash fired, auto mode, return light detected';
break;
case 32:
$fbexif_flash = 'No flash function';
break;
case 65:
$fbexif_flash = 'Flash fired, red-eye reduction mode';
break;
case 69:
$fbexif_flash = 'Flash fired, red-eye reduction mode, return light not detected';
break;
case 71:
$fbexif_flash = 'Flash fired, red-eye reduction mode, return light detected';
break;
case 73:
$fbexif_flash = 'Flash fired, compulsory flash mode, red-eye reduction mode';
break;
case 77:
$fbexif_flash = 'Flash fired, compulsory flash mode, red-eye reduction mode, return light not detected';
break;
case 79:
$fbexif_flash = 'Flash fired, compulsory flash mode, red-eye reduction mode, return light detected';
break;
case 89:
$fbexif_flash = 'Flash fired, auto mode, red-eye reduction mode';
break;
case 93:
$fbexif_flash = 'Flash fired, auto mode, return light not detected, red-eye reduction mode';
break;
case 95:
$fbexif_flash = 'Flash fired, auto mode, return light detected, red-eye reduction mode';
break;
default:
$fbexif_flash = '';
break;
}
}// if ($datum!="")
}
if($exif["EXIF"] AND $exiferror=="false")
{
echo "<table class=\"exif\">";
echo "<tr><th class=\"exif\" colspan=\"2\">Exif-Daten</th></tr>";
//echo "<tr><th class=\"exif\">Dateiname</th><td class=\"exif\">{$exif["FILE"]["FileName"]}</td></tr>";
//echo "<tr><th class=\"exif\">Kamera-Hersteller</th><td class=\"exif\">{$exif["IFD0"]["Make"]}</td></tr>";
echo "<tr><th class=\"exif\">Kamera-Modell</th><td class=\"exif\">{$exif["IFD0"]["Model"]}</td></tr>";
//echo "<tr><th class=\"exif\">Bildbeschreibung</th><td class=\"exif\">{$exif["IFD0"]["ImageDescription"]}</td></tr>";
//echo "<tr><th class=\"exif\">Kommentar</th><td class=\"exif\">{$exif["COMMENT"][0]}</td></tr>";
//echo "<tr><th class=\"exif\">Datum/ Uhrzeit</th><td class=\"exif\">{$exif["FILE"]["DateTimeOriginal"]}</td></tr>";
echo "<tr><th class=\"exif\">Datum/ Uhrzeit</th><td class=\"exif\">$datum_formatiert</td></tr>";
echo "<tr><th class=\"exif\">ISO</th><td class=\"exif\">{$exif["EXIF"]["ISOSpeedRatings"]}</td></tr>";
echo "<tr><th class=\"exif\">Blende</th><td class=\"exif\">{$exif["EXIF"]["FNumber"]}</td></tr>";
echo "<tr><th class=\"exif\">Brennweite</th><td class=\"exif\">{$exif["EXIF"]["FocalLength"]}</td></tr>";
echo "<tr><th class=\"exif\">Belichtungsdauer</th><td class=\"exif\">{$exif["EXIF"]["ExposureTime"]}</td></tr>";
//echo "<tr><th class=\"exif\">Belichtungsmessung</th><td class=\"exif\">$belichtungsmessung</td></tr>";
//echo "<tr><th class=\"exif\">Belichtungsmodus</th><td class=\"exif\">$belichtungsmodus</td></tr>";
echo "<tr><th class=\"exif\">Belichtungsprogramm</th><td class=\"exif\">$belichtungsprogramm</td></tr>";
echo "<tr><th class=\"exif\">Blitz</th><td class=\"exif\">$fbexif_flash</td></tr>";
//echo "<tr><th class=\"exif\">FileDateTime</th><td class=\"exif\">{$exif["FILE"]["FileDateTime"]}</td></tr>";
echo "<tr><th class=\"exif\">Weißabgleich</th><td class=\"exif\">$weissabgleich</td></tr>";
//echo "<tr><th class=\"exif\">Dateigröße</th><td class=\"exif\">".number_format($exif["FILE"]["FileSize"]/1024, 0, ',', '.')." kb</td></tr>";
//echo "<tr><th class=\"exif\">Exif-Bildbreite</th><td class=\"exif\">{$exif["EXIF"]["ExifImageWidth"]}</td></tr>";
//echo "<tr><th class=\"exif\">Exif-Bildhöhe</th><td class=\"exif\">{$exif["EXIF"]["ExifImageLength"]}</td></tr>";
//echo "<tr><th class=\"exif\">Komprimierte Bits pro Pixel</th><td class=\"exif\">{$exif["EXIF"]["CompressedBitsPerPixel"]}</td></tr>";
//echo "<tr><th class=\"exif\">IsColor</th><td class=\"exif\">{$exif["COMPUTED"]["IsColor"]}</td></tr>";
echo "<tr><th class=\"exif\">Exif Version</th><td class=\"exif\">{$exif["EXIF"]["ExifVersion"]}</td></tr>";
//echo "<tr><th class=\"exif\">html</th><td class=\"exif\">{$exif["COMPUTED"]["html"]}</td></tr>";
echo "</table>";
}
}
/*------------------------------Ende function exifdaten------------------------------*/
chdir($dir);
$array = glob("*"); //einlesen aller inhalte des ordners, inkl. vorschauordner
$t=0;
while($t<count($array))
{
if($array[$t]=="vorschau") $target_key=$t;// key des ordners vorschau wird ermittelt
$t++;
}
unset($array[$target_key]); // ordner vorschau wird aus dem array entfernt
$array = array_values($array); // index des arrays wird neu aufgebaut
if ($sortierung_absteigend=="true")
{
$array = array_reverse($array);
ksort($array);
}
function array_key($array, $search_value){return current(array_keys($array, $search_value));}
$key_datei_aktuell = array_key($array, "$datei");
$key_datei_zurueck=$key_datei_aktuell-1;
$key_datei_vor=$key_datei_aktuell+1;
$key_seite_uebersicht=$key_datei_aktuell/$anzahl_bilder_pro_seite;
$key_seite_uebersicht=(int)$key_seite_uebersicht; //ungerade Zahl wird nach dem Komma abgeschnitten
if ($navigation_oben=="true")
{
echo "<div class=\"bildergalerie_sd_menue_detail\">";
if($key_datei_zurueck>-1) {echo "<a class=\"bildergalerie_sd_detail\" href=\"$url_detailansicht&verzeichnis=$verzeichnis&dateiname=$array[$key_datei_zurueck]&seite=$seite&anzahl_bilder_pro_seite=$anzahl_bilder_pro_seite&sortierung_absteigend=$sortierung_absteigend\">".$text_vorheriges_bild."</a> ";}
echo " <a class=\"bildergalerie_sd_detail\" href=\"$url_vorschau&seite=$key_seite_uebersicht\">".$text_uebersicht."</a> ";
if($key_datei_vor<count($array)) {echo "<a class=\"bildergalerie_sd_detail\" href=\"$url_detailansicht&verzeichnis=$verzeichnis&dateiname=$array[$key_datei_vor]&seite=$seite&anzahl_bilder_pro_seite=$anzahl_bilder_pro_seite&sortierung_absteigend=$sortierung_absteigend\">".$text_naechstes_bild."</a>";}
echo "</div>";
}
echo "<div class=\"bildergalerie_sd_bild\">";
if ($bilder_einfaden=="false")
{
echo "<img class=\"bildergalerie_sd_detail\" src=\"".$verzeichnis.$datei."\"/>";
}
else
{
echo "<noscript>"; // noscript für den Fall, das JavaScript aktiviert oder deaktiviert ist
echo "<img class=\"bildergalerie_sd_detail\" src=\"".$verzeichnis.$datei."\" alt=\"BILD\"/>";
echo "<br/><br/>Bitte aktivieren Sie Javascript für die 'Normalansicht' der Galeriebilder. Vielen Dank.";
echo "</noscript>";
echo "<img class=\"bildergalerie_sd_detail\" alt=\"BILD\" src=\"".$url_allgemein.$verzeichnis.$datei."\" style=\"filter:alpha(opacity=0);-moz-opacity: 0;opacity:0\" onload=\"init_fader(this,5,".$geschwindigkeit_einfaden.",0,99,1)\"/>";
}
echo "</div>";
if ($beschreibung_anzeigen=="true")
{
$tabelle="con_upl";
/********** MySQL Anfang **********/
$sql ="SELECT description,dirname FROM $tabelle WHERE filename='".mysql_real_escape_string($datei)."' AND dirname='".mysql_real_escape_string($dir_mysql)."'";
$db->query($sql);
$db->next_record();
$beschreibung = $db->f('description');
$dirname = $db->f('dirname');
if ($beschreibung!="")
{
$sonderzeichen=array("+","%E4","%F6","%FC","%C4","%D6","%DC","%DF","%28","%29","%21","%22","%A7","%24","%25","%26","%3D","%3F","%7B","%7D","%5B","%5D","%B4","%60","%2A","%23","%27","%2C","%3A","%2F","%3Cbr%3E");
$ersetzer=array(" ","ä","ö","ü","Ä","Ö","Ü","ß","(",")","!",'"',"§","$","%","&","=","?","{","}","[","]","´","`","*","#","'",',',":","/","<br>");
echo "<div class=\"bildergalerie_sd_beschreibung\">".str_replace($sonderzeichen,$ersetzer,$beschreibung)."</div>";
}
if ($beschreibung=="") {echo "<div class=\"bildergalerie_sd_beschreibung\">".$beschreibung_fehlt."</div>";}
/********** MySQL Ende**********/
}
if ($navigation_unten=="true")
{
echo "<div class=\"bildergalerie_sd_menue_detail\"><br/>";
if($key_datei_zurueck>-1) {echo "<a class=\"bildergalerie_sd_detail\" href=\"$url_detailansicht&verzeichnis=$verzeichnis&dateiname=$array[$key_datei_zurueck]&seite=$seite&anzahl_bilder_pro_seite=$anzahl_bilder_pro_seite&sortierung_absteigend=$sortierung_absteigend\">".$text_vorheriges_bild."</a> ";}
echo " <a class=\"bildergalerie_sd_detail\" href=\"$url_vorschau&seite=$key_seite_uebersicht\">".$text_uebersicht."</a> ";
if($key_datei_vor<count($array)-1) {echo "<a class=\"bildergalerie_sd_detail\" href=\"$url_detailansicht&verzeichnis=$verzeichnis&dateiname=$array[$key_datei_vor]&seite=$seite&anzahl_bilder_pro_seite=$anzahl_bilder_pro_seite&sortierung_absteigend=$sortierung_absteigend\">".$text_naechstes_bild."</a>";}
echo "</div>";
}
if ($exifdaten_anzeigen=="true")
{
exifdaten($url_allgemein.$verzeichnis.$datei);
}
chdir($dir_start);
?>
Code: Alles auswählen
/* ###################################################### */
/* ################## Bildergalerie SD ################## */
/* ###################################################### */
a.bildergalerie_sd_detail,
a.bildergalerie_sd_vorschau {
font-size: 12px;
color: #999999;
}
a.bildergalerie_sd_detail:hover,
a.bildergalerie_sd_vorschau:hover {
font-size: 12px;
color: #999999;
text-decoration: underline;
}
a.bildergalerie_sd_seitenwaehler_active {
color: #999999;
font-size: 14px;
font-weight: 900;
}
a.bildergalerie_sd_seitenwaehler_passive {
color: #999999;
font-size: 12px;
}
div.bildergalerie_sd {
text-align: center;
}
div.bildergalerie_sd_beschreibung {
margin-top: 10px;
text-align: center;
font-size: 10px;
}
div.bildergalerie_sd_bild {
text-align: center;
}
div.bildergalerie_sd_bild_vorschau {
text-align: center;
width: 120px;
height: 120px;
display: table-cell;
vertical-align: middle;
}
div.bildergalerie_sd_menue_detail,
div.bildergalerie_sd_menue_vorschau {
text-align: center;
margin-bottom: 5px;
margin-top: -10px;
}
img.bildergalerie_sd_bild_vorschau {
border: 1px solid #777777;
}
table.bildergalerie_sd {
text-align: center;
margin-right:auto;
margin-left:auto;
}
td.bildergalerie_sd {
text-align:center;
padding: 10px;
}
table.exif {
margin-left: auto;
margin-right: auto;
}
td.exif {
color: #555555;
font-size: 10px;
text-align: left;
}
th.exif {
color: #ffffff;
text-align: left;
font-weight: 900;
font-size: 10px;
background-color: #222222;
}