Bildergalerie - eine weitere

Selbstentwickelte Module für CONTENIDO für die Version 4.8

Moderator: Moderatoren

Bildergalerie - eine weitere

Beitragvon McHubi » Mo 9. Nov 2009, 23:16

EDIT 07.08.2012: Es gibt eine neue Bildergalerie von mir, die noch eine ganze Menge mehr Features zu bieten hat... http://forum.contenido.org/viewtopic.php?f=60&t=32166 Schaut sie euch an... :wink:

Ja, ich weiß. Bildergalerien gibt's viele. Wollte aber meine eigene und hier ist sie! :mrgreen:

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_content.php?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:
Bild
Bild

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&auml;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.'">&nbsp;'.$dirname.'</option>';
    } else {
        $selected = true;
        echo '<option value="'.$dirname.'" selected="selected">&nbsp;'.$dirname.'</option>';
    }
}

if (!$selected) {
    echo '<option value="0" selected="selected">'.i18n("Bitte w&auml;hlen").'</option>';
} else {
    echo '<option value="0">'.i18n("Bitte w&auml;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>";

Modul "bildergalerie_sd_vorschau" OUTPUT:
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&amp;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&amp;seite=$counter_seitenanzeige\">".$seitenanzeige."</a>&nbsp;";}
    if ($aktuelle_seite!=$seitenanzeige) {echo "<a class=\"bildergalerie_sd_seitenwaehler_passive\" href=\"$url_vorschau&amp;seite=$counter_seitenanzeige\">".$seitenanzeige."</a>&nbsp;";}
    $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&amp;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&amp;verzeichnis=$dir&amp;dateiname=$filename&amp;seite=$seite&amp;anzahl_bilder_pro_seite=$anzahl_bilder_pro_seite&amp;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&amp;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&amp;seite=$counter_seitenanzeige\">".$seitenanzeige."</a>&nbsp;";}
    if ($aktuelle_seite!=$seitenanzeige) {echo "<a class=\"bildergalerie_sd_seitenwaehler_passive\" href=\"$url_vorschau&amp;seite=$counter_seitenanzeige\">".$seitenanzeige."</a>&nbsp;";}
    $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&amp;seite=$seite_weiter\">".$text_weiter."</a>";}
  echo "</div>";
  }
}

?>


Modul "bildergalerie_sd_detail" INPUT:
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>";

Modul "bildergalerie_sd_detail" OUTPUT:
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&ouml;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&szlig;abgleich</th><td class=\"exif\">$weissabgleich</td></tr>";
//echo "<tr><th class=\"exif\">Dateigr&ouml;&szlig;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&ouml;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&amp;verzeichnis=$verzeichnis&amp;dateiname=$array[$key_datei_zurueck]&amp;seite=$seite&amp;anzahl_bilder_pro_seite=$anzahl_bilder_pro_seite&amp;sortierung_absteigend=$sortierung_absteigend\">".$text_vorheriges_bild."</a> ";}
echo " <a class=\"bildergalerie_sd_detail\" href=\"$url_vorschau&amp;seite=$key_seite_uebersicht\">".$text_uebersicht."</a> ";
if($key_datei_vor<count($array)) {echo "<a class=\"bildergalerie_sd_detail\" href=\"$url_detailansicht&amp;verzeichnis=$verzeichnis&amp;dateiname=$array[$key_datei_vor]&amp;seite=$seite&amp;anzahl_bilder_pro_seite=$anzahl_bilder_pro_seite&amp;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&uuml;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(" ","&auml;","&ouml;","&uuml;","&Auml;","&Ouml;","&Uuml;","&szlig;","(",")","!",'"',"§","$","%","&","=","?","{","}","[","]","´","`","*","#","'",',',":","/","<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&amp;verzeichnis=$verzeichnis&amp;dateiname=$array[$key_datei_zurueck]&amp;seite=$seite&amp;anzahl_bilder_pro_seite=$anzahl_bilder_pro_seite&amp;sortierung_absteigend=$sortierung_absteigend\">".$text_vorheriges_bild."</a> ";}
echo " <a class=\"bildergalerie_sd_detail\" href=\"$url_vorschau&amp;seite=$key_seite_uebersicht\">".$text_uebersicht."</a> ";
if($key_datei_vor<count($array)-1) {echo "<a class=\"bildergalerie_sd_detail\" href=\"$url_detailansicht&amp;verzeichnis=$verzeichnis&amp;dateiname=$array[$key_datei_vor]&amp;seite=$seite&amp;anzahl_bilder_pro_seite=$anzahl_bilder_pro_seite&amp;sortierung_absteigend=$sortierung_absteigend\">".$text_naechstes_bild."</a>";}
echo "</div>";
}


if ($exifdaten_anzeigen=="true")
   {
    exifdaten($url_allgemein.$verzeichnis.$datei);
   }

chdir($dir_start);

?>


CSS-Datei
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;
}
Zuletzt geändert von McHubi am Di 7. Aug 2012, 22:46, insgesamt 11-mal geändert.
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

NEU: Das Buch zur Version 4.9: Contenido für Einsteiger (4.9) Ebenfalls online erhältlich: Contenido für Einsteiger (4.8)
McHubi
 
Beiträge: 700
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Erkrath

Re: Bildergalerie - eine weitere

Beitragvon idea-tec » Di 10. Nov 2009, 06:59

McHubi hat geschrieben:Würde mich freuen, wenn sie der/die eine oder andere gebrauchen kann.

ich habe es mir durchgesehen und mir direkt 2 Fragen gestellt:

1.) wie behandelst du fehlerhafte exif-Daten?
habe ich es übersehen?

2.) wozu machst du einen db-connect?
db-zugriff aus modulen ist voll einfach, da muss man keine neue und vor allem zusätzliche verbindung öffnen.

Es sind noch 2-3 Sachen aufgefallen, aber die sind "Geschmackssache" ;-)
ansonsten: LOB! sieht nach guter solider arbeit aus, ohne dass es zu überladen ist
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
idea-tec
 
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach

Re: Bildergalerie - eine weitere

Beitragvon McHubi » Di 10. Nov 2009, 08:26

Hallo idea-tec,

Danke für's Lob! :D

Zu Deinen Anmerkungen:
1) Gute Frage. K.A. ob's da eine Art Abfrage für defekte Exifs gibt oder nicht...

2) Tja. Hatte ich eigentlich vor, allerdings war's dann wohl ZU einfach und ich hab's nicht hingebogen bekommen :oops: Vielleicht hast Du ja nen kurzen Schnipsel zum Einbauen für mich?

Und wo wir grad dabei sind: Geschmackssachen interessieren mich. Man kann ja durchaus noch was nachwürzen... :mrgreen:
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

NEU: Das Buch zur Version 4.9: Contenido für Einsteiger (4.9) Ebenfalls online erhältlich: Contenido für Einsteiger (4.8)
McHubi
 
Beiträge: 700
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Erkrath

Re: Bildergalerie - eine weitere

Beitragvon idea-tec » Di 10. Nov 2009, 09:05

McHubi hat geschrieben:1) Gute Frage. K.A. ob's da eine Art Abfrage für defekte Exifs gibt oder nicht...
Das ist das Problem, das merkt man erst an der Fehlermeldung auf der Seite.
Hätte ja aber sein können, dass es was aktuelleres gibt, da ich mich das letzte Mal vor 1,5 Jahren damit auseinander gesetzt habe, als wir unsere Bildagentur konzeptioniert und umgesetzt haben.

McHubi hat geschrieben:1)2) Tja. Hatte ich eigentlich vor, allerdings war's dann wohl ZU einfach und ich hab's nicht hingebogen bekommen :oops: Vielleicht hast Du ja nen kurzen Schnipsel zum Einbauen für mich?

Code: Alles auswählen
$sql ='SELECT description,dirname FROM $tabelle WHERE filename='".$datei."' AND dirname='".$dir_mysql."';
$db->query($sql);
$db->next_record();
$beschreibung = $db->f("description");
$dirname = $db->f("dirname");
Sieht schlimmer aus als dein Original, hat aber den Vorteil, dass keine erneute Verbindung aufgebaut wird, da Contenido selbst schon genug connects aufbaut und dass es direkt an Contenido dran ist.

Zur Geschmackssache äußere ich mich nicht nur aufgrund des codes, den ich sehe, das kann man wirklich erst, wenn man sie mal in betrieb gesehen hat
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
idea-tec
 
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach

Re: Bildergalerie - eine weitere

Beitragvon McHubi » Di 10. Nov 2009, 20:33

Hi,

na, sooo viel schlimmer sieht's ja nicht aus... letztlich spart's ja, neben ner Datenbankverbindung, auch Tipperei, drei Variablen und ein paar Zeilen Code... :roll:

:!: Der Code im ersten Posting ist angepasst. :!:

Danke für den Schnipsel...

Lösungsansatz fehlerhafte EXIF-Daten

Zur Provokation von fehlerhaften EXIF-Infos habe ich einfach mal eine Testdatei in Fotoladen erstellt und hochgeladen. Resultat war folgende Fehlermeldung:
"Warning: mktime() expects parameter 1 to be long, string given in ..."

Im Klartext geht's also um diese Zeilen hier:
Code: Alles auswählen
$exif = exif_read_data($bild, "" , true,false);

  $datum = $exif["EXIF"]["DateTimeOriginal"];
  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);


Der Timestamp kann nicht erstellt werden, da die entsprechende EXIF-Information fehlt - DateTimeOriginal ist leer. Das Fehlen von weiteren EXIF-Daten wird nicht angemeckert, da diese ja nicht verarbeitet werden sollen sondern nur ausgegeben. Und was fehlt, wird halt einfach nicht angezeigt.

Die Lösung des mktime-errors bringt eine Abfrage, ob $datum, sprich DateTimeOriginal leer ist. Wenn das so ist, soll die Umwandlung nicht stattfinden und die EXIF-Daten nicht ausgegeben werden.

Im Output-Code von bildergalerie_sd_detail müsste
Code: Alles auswählen
/*------------------------------Beginn function exifdaten------------------------------*/
function exifdaten($bild) {
$exif = exif_read_data($bild, "" , true,false);

  $datum = $exif["EXIF"]["DateTimeOriginal"];
  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); 

  $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&ouml;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($exif["EXIF"])
  {
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\">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\">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&ouml;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\">Weißabgleich</th><td class=\"exif\">$weissabgleich</td></tr>";
//echo "<tr><th class=\"exif\">html</th><td class=\"exif\">{$exif["COMPUTED"]["html"]}</td></tr>";
echo "</table>";
}

}

/*------------------------------Ende function exifdaten------------------------------*/

ausgetauscht werden gegen
Code: Alles auswählen
/*------------------------------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); 

  $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&ouml;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\">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\">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&ouml;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\">Weißabgleich</th><td class=\"exif\">$weissabgleich</td></tr>";
//echo "<tr><th class=\"exif\">html</th><td class=\"exif\">{$exif["COMPUTED"]["html"]}</td></tr>";
echo "</table>";
}

}

/*------------------------------Ende function exifdaten------------------------------*/
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

NEU: Das Buch zur Version 4.9: Contenido für Einsteiger (4.9) Ebenfalls online erhältlich: Contenido für Einsteiger (4.8)
McHubi
 
Beiträge: 700
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Erkrath

Re: Bildergalerie - eine weitere

Beitragvon idea-tec » Di 10. Nov 2009, 21:44

das ist nicht das problem, aber bereits ein guter ansatz zu SUPER gut programmierten modulen ;-)

das problem ist. wenn exif bereits komplett defekt oder gar nicht vorhanden ist, aber das führt zu offtopic, das es hierbei nicht mehr um das modul geht, sondern um bild-erstellung und -verarbeitung.
aber: meiner meinung nach gehört in ein TOP-Modul (das man auch mit einem zertifikat austatten könnte) eine sicherheitsprüfung ALLER das modul betreffenden funktionen.
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)
idea-tec
 
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach

Re: Bildergalerie - eine weitere

Beitragvon willie007 » Mo 2. Aug 2010, 10:11

Hallo McHubi,

ich habe deine tolle Bildergalerie "verbaut" - vielen Dank dafür! Allerdings habe ich im Backend (Version 4.8.12) folgende Fehlermeldungen, die darauf hinweisen, dass etwas mit dem Output von "bildergalerie_sd_detail" nicht stimmt:

Warning: chdir() [function.chdir]: Datei oder Verzeichnis nicht gefunden (errno 2) in /homepages/15/d333764405/htdocs/a-learning/contenido/includes/include.con_editcontent.php(638) : eval()'d code on line 1617

Warning: Division by zero in /homepages/15/d333764405/htdocs/a-learning/contenido/includes/include.con_editcontent.php(638) : eval()'d code on line 1632


Im Frontend werden die Bilder allerdings ohne Probleme angezeigt!

Probleme gibt es auch wenn ich in der Konfiguration "Exif-Daten anzeigen" aktiviere. Dann erhalte ich sowohl im Frontend wie auch im Backend folgende Fehlermeldung:

Warning: exif_read_data() [function.exif-read-data]: Unable to open file in /homepages/15/d333764405/htdocs/a-learning/contenido/external/backendedit/front_content.php(959) : eval()'d code on line 1332


Deine Einbauanleitung habe ich in allen Punkten beachtet - unklar war mir lediglich an welcher Stelle ich §dir im Output des Moduls "bildergalerie_sd_detail" anpassen sollte. Die Variable finde ich leider nicht?!

Über eine Hilfestellung freue ich mich sehr!

Viele Grüße

willie007
willie007
 
Beiträge: 2
Registriert: Mo 2. Aug 2010, 09:46

Re: Bildergalerie - eine weitere

Beitragvon McHubi » Mo 2. Aug 2010, 11:58

Hallo willie007,

Danke für Dein Lob! Freut mich :D

Allerdings habe ich im Backend (Version 4.8.12) folgende Fehlermeldungen...


An der Fehlermeldung brauchst Du Dich nicht stören. Das hängt damit zusammen, dass für die Detailansicht eines Bildes ja angegeben werden muss um welches es sich handelt und wo es zu finden ist. Wenn Du den Artikel also im Backend aufrufst, wird genau das aber nicht übermittelt - was dann zu dieser Fehlermeldung führt (im Frontend klickst Du ja vor dem Aufruf auf das Vorschaubild, womit dessen Daten an das Modul in der Detailansicht übertragen werden). Mal schauen, vielleicht bastel ich da bei Gelegenheit mal eine Abfrage rein ob das Modul im Back- oder Frontend aufgerufen wird. Aber, wie gesagt, erstmal ignorieren. Der tut nix, will nur meckern :wink:

Probleme gibt es auch wenn ich in der Konfiguration "Exif-Daten anzeigen" aktiviere.


Ja, die Exif-Anzeige ist tatsächlich noch eine Baustelle. Das Problem dabei ist nicht die Daten auszulesen und anzuzeigen sondern vielmehr: sind die hinterlegten Exif-Daten überhaupt korrekt? Für fehlende Exif-Daten gibt's einen Workaraound (siehe mein Posting vom 10.11.2009). Eine Abfrage oder eine Vorabprüfung ob vorhandene Exif-Daten korrekt sind, ist mir bisher noch nicht aus dem Kopf gefallen. Wenn Du nicht gerade Fotograf bist und diese Daten dem Seitenbesucher mitteilen musst/ willst, ist diese Funktion für die Allgemeinheit aber ohnehin eher weniger von Interesse. Hatte es damals nur angegangen weil ich selbst sehr viel fotografiere und für mich die Anzeige der Exif-Daten interessant wäre. Aber, wie gesagt: bis auf weiteres Baustelle. Aber die Funktion kannst Du ja im Backend einfach deaktivieren.

Deine Einbauanleitung habe ich in allen Punkten beachtet - unklar war mir lediglich an welcher Stelle ich §dir im Output des Moduls "bildergalerie_sd_detail" anpassen sollte. Die Variable finde ich leider nicht?!


Schau mal hier: Modul "bildergalerie_sd_vorschau" OUTPUT, ziemlich am Anfang:

Code: Alles auswählen
$dir="upload/CMS_VALUE[2]"; // Verzeichnis Bilder


Wenn Du die Standardeinstellungen/ -ordner von Contenido so belassen hast wie sie ursprünglich sind, musst Du da aber nicht dran rumfummeln... Wenn also Deine Bildergalerien in Unterordnern des "upload"-Ordners liegen: einfach so lassen. Nur, wenn die Ordner oberhalb des "upload"-Ordners liegen sollten, müsstest Du hier was anpassen.

Viel Spass mit der Galerie :P
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

NEU: Das Buch zur Version 4.9: Contenido für Einsteiger (4.9) Ebenfalls online erhältlich: Contenido für Einsteiger (4.8)
McHubi
 
Beiträge: 700
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Erkrath

Re: Bildergalerie - eine weitere

Beitragvon willie007 » Di 3. Aug 2010, 23:48

Hallo McHubi,

vielen Dank für Deine detaillierten Antworten :D . Das ist nicht selbstverständlich!

Ich bin nun doch beruhigt, dass soweit mit meiner Installation alles ok ist und lasse mich nun vom "Gemeckere" von Contenido nicht mehr stören!

Viele Grüße

willie007
willie007
 
Beiträge: 2
Registriert: Mo 2. Aug 2010, 09:46

Re: Bildergalerie - eine weitere

Beitragvon Halchteranerin » Sa 7. Aug 2010, 06:15

Hallo McHubi,

habe jetzt erst diese Bildergalerie entdeckt. :oops: Bei den von mir bisher benutzten Bildergalerien ist das so, dass man die Bilder nur einzeln anklicken kann, d. h. es gibt, wenn man einmal ein Thumbnail vergrößert hat, keine "weiter/zurück"-Funktion, und ich habe gesehen, dass es die hier gibt. Aber ich habe im Moment ein Verständnisproblem, nach dem Lesen hier. Du hast geschrieben:
Notwendige Anpassungen im Output "bildergalerie_sd_detail":
-$dir (Grundverzeichnis der Bilderorder, standardmäßig auf "upload" verweisend)


Wenn ich das im Moduloutput machen muss, heißt das, dass ich für jede Galerie, die ich haben möchte, ein neues Modul anlegen muss, oder? Wäre es nicht geschickter, das über die Artikelkonfiguration zu steuern, so dass man beliebig viele Galerien anlegen kann? Vielleicht habe ich auch nur etwas missverstanden ... Ich habe zwar gesehen, dass es irgendwie Kategorien gibt, aber mein Problem ist Folgendes: ich habe auf der Site voneinander unabhängige Kategorien (unsere Tochter, Renovierungen am Haus, Urlaub), die auch nicht alle in derselben Galerie erscheinen sollen. Das hieße, wenn ich das richtig verstanden habe, dass ich zumindest für diese drei "Oberkategorien" auf jeden Fall das Modul bildergalerie_sd_detail einzeln anlegen müsste, oder?

Viele Grüße
Christa
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!
Halchteranerin
 
Beiträge: 5499
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)

Re: Bildergalerie - eine weitere

Beitragvon McHubi » Mo 9. Aug 2010, 07:55

Hallo Christa,

Wenn ich das im Moduloutput machen muss, heißt das, dass ich für jede Galerie, die ich haben möchte, ein neues Modul anlegen muss, oder?


Um Gottes willen! Nein, nein... Du musst nicht für jede Galerie ein neues Modul anlegen. Schau mal in meinen Post vom 2. August. Da gehts genau um $dir. Bedeutet: nur wenn Du Deinen Bildergalerieordner NICHT innerhalb von upload/ hast, dann musst Du hier was ändern. Wenn also in Deinem Dateisystem die Galerien so angelegt sind:

cms/upload/bildergalerien/tochter/
cms/upload/bildergalerien/haus/
cms/upload/bildergalerien/urlaub/
...

musst Du nix ändern.

Nur, wenn das so aussähe:
cms/bildergalerien/tochter/
...

Die Ordner kannst Du später zum Anlegen der Galerien natürlich per Dropdown auswählen. Du musst nur für jede Galerie einen eigenen Ordner anlegen. Der Ordner für die Vorschaubilder wird automatisch angelegt.

Viele Grüße,


Markus
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

NEU: Das Buch zur Version 4.9: Contenido für Einsteiger (4.9) Ebenfalls online erhältlich: Contenido für Einsteiger (4.8)
McHubi
 
Beiträge: 700
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Erkrath

Re: Bildergalerie - eine weitere

Beitragvon Halchteranerin » Mo 9. Aug 2010, 20:55

Hallo Markus,

als ich gestern gelesen habe, habe ich irgendwie nur das letzte Posting gesehen, mea culpa. :oops: Also ein bisschen mit den EXIF-Daten hatte ich überflogen, aber das von dir erwähnte Posting war irgendwie unsichtbar. :D
McHubi hat geschrieben:cms/upload/bildergalerien/tochter/
cms/upload/bildergalerien/haus/
cms/upload/bildergalerien/urlaub/
...

musst Du nix ändern.

Nur, wenn das so aussähe:
cms/bildergalerien/tochter/
...

Ist das nur im zweiten Fall ein Problem? Konkret: ich habe cms/upload/bilder/
Darunter tochter/ :D mit Unterverzeichnissen und parallel zu "tochter/" auch "urlaub/" (momentan zwei Parallelverzeichnisse, hätte geschickterweise auch einen Ordner Urlaub anlegen sollen ...) und "haus/" mit Unterverzeichnissen. Kann ich davon auf verschiedenen Seiten verschiedene Galerien bilden (also eine Seite fürs Haus mit "Untergalerien", eine für die Tochter für Untergalerien, ggf. noch andere)?

Viele Grüße
Christa
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!
Halchteranerin
 
Beiträge: 5499
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)

Re: Bildergalerie - eine weitere

Beitragvon McHubi » Mo 9. Aug 2010, 22:20

Hallo Christa,

nein, ist kein Problem. Wenn in $dir das besagte Verzeichnis "upload" bleibt wie im obigen Code, werden alle hier drin liegenden Verzeichnisse aufgeführt. Also wirst Du in der Konfiguration des Vorschaumoduls ganz normal Deine Verzeichnisse

bilder/tochter/unterverzeichnis1
bilder/tochter/unterverzeichnis2
bilder/tochter/unterverzeichnis3
bilder/tochter/unterverzeichnis...
bilder/urlaub/unterverzeichnis1
bilder/urlaub/unterverzeichnis2
bilder/urlaub/unterverzeichnis3
bilder/urlaub/unterverzeichnis...

finden. Du wählst also in der Konfiguration einfach den Ordner aus in dem die großen "Detailbilder" liegen. Sobald Du das erste Mail die Galerie in der Vorschau im Frontend aufrufst, wird innerhalb dieses Ordners dann ein weiterer Ordner "Vorschau" erstellt mit den Icons. Du kannst grundsätzlich alle Ordner nehmen die im Dropdown aufgeführt werden. Nur der Pfad ist je nach Ordnerstruktur mal mehr oder weniger lang. Egal wie viele Galerien Du haben willst: Du musst das Modul für die Vorschau und Detailansicht nur einmal installieren. Welche Bilder Du anzeigen willst, regelst Du mit Deiner Ordnerstruktur und dem Dropdown der Konfig des Vorschaumoduls. Das Einzige was Du tatsächlich immer neu anlegen musst, ist für jede Galerie ein eigener Vorschau- und Detailartikel. Probiers einfach mal aus... :wink:
seamless-design.de
"Geht nicht!" wohnt in der "Will nicht!"-Strasse.

NEU: Das Buch zur Version 4.9: Contenido für Einsteiger (4.9) Ebenfalls online erhältlich: Contenido für Einsteiger (4.8)
McHubi
 
Beiträge: 700
Registriert: Do 18. Nov 2004, 23:06
Wohnort: Erkrath

Re: Bildergalerie - eine weitere

Beitragvon Halchteranerin » Mo 9. Aug 2010, 23:22

McHubi hat geschrieben:Probiers einfach mal aus... :wink:

Gute Idee! :mrgreen: Ich mache das mal ...
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!
Halchteranerin
 
Beiträge: 5499
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)

Re: Bildergalerie - eine weitere

Beitragvon Aleksch1893 » Fr 15. Okt 2010, 21:17

Hallo, das Modul ist sehr interessant. Beim Einbau musste ich jedoch feststellen, dass ich nach genauem Befolgen der Anleitung nach Eingabe des Datenbank-Zugangs per Modul-Konfiguration eine weiße Seite bekomme, wo gar nichts ausgegeben wird. Woran kann das liegen? Entferne ich die Zugangsdaten, kann er natürlich nicht zur Datenbank verbinden. Was vielleicht interessant ist: es handelt sich um eine Seite mit SSL-Zertifikat - aber meiner Erfahrung nach sollte das eigentlich kein Hindernis sein.

Freu mich auf Feedback,
viele Grüßle.
Aleksch1893
 
Beiträge: 38
Registriert: Mo 26. Jul 2010, 09:47

Nächste

Zurück zu Module 4.8.x

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron