EXIF in NextGenGallery-Thickbox einbinden

Hi,

NextGenGallery ist ziemlich cool zur Bilderverwaltung. Leider hat sie einen großen Nachteil: Man bekommt EXIF-Daten nur in der Bilderbrowser-Ansicht angezeigt. Will man sie in der normalen Bilderliste – die durch die Thumbnails sehr schön übersichtlich ist – haben, muss man sie entweder in den ALT-Tag der Links legen (sodass man sie beim Darüberfahren mit der Maus angezeigt bekommt), oder man schreibt sie in die Description der Thickbox. Letzteres Verfahren gefällt mir am besten, erfordert aber ein paar Änderungen an der Datei /wp-content/plugins/nextgen-gallery/view/gallery.php.

Zuerst muss man wissen, wie NGG mit den EXIF-Daten umgeht. Es gibt eine Variable $images, welche alle Informationen über die in der Gallerie vorhandenen Bilder enthält. In jedem $image von $images steckt wiederum $image[meta_data]. In meta_data stecken dann endlich solche Dinge wie aperture, focal_length und so weiter, an die wir heranwollen.

Wir müssen also zunächst die EXIF-Daten beschaffen. Dazu greifen wir bei der Thumbnail-Routine ein. Hier steht im Original:

<!-- Thumbnails -->
<?php foreach ( $images as $image ) : ?>

Direkt darunter ergänzen wir nun unseren Hack:

<!-- HACK LIEST EXIF DATEN EIN -->
<?php
	$exif = array();
	foreach ($image->meta_data as $key => $value) {
			$exif[$key] = $value;
		}
	$newdescription = "<b>".$exif['camera']." - ".
	   $exif['focal_length']." - ".$exif['shutter_speed']." - ".
	   $exif['aperture']." - ISO ".$exif['iso']."</b>";
?>
<!-- HACK IST FERTIG MIT EINLESEN DER EXIF DATEN -->

Jetzt haben wir ein Array $exif mit allen unseren Werten drin. Und wir haben die Werte auch gleich in einen String namens $newdescription geschrieben, der uns die wichtigsten ausgibt. Wer die Reihenfolge, Optik oder Art der Einträge ändern will, kann einfach die Stringbefüllung von $newdescription nach seinen Wünschen abändern.

Nun müssen wir $newdescription nur noch einbauen. Dazu müssen wir weiter unten noch was ändern:

<a 	href="<?php echo $image->imageURL ?>" 
	title="<?php echo $image->description ?>" 
<?php echo $image->thumbcode ?> >

Das ändern wir folgendermaßen:

<a 	href="<?php echo $image->imageURL ?>" 
	title="<?php echo $newdescription ?>" 
<?php echo $image->thumbcode ?> >

Voilà, das war es schon. Wenn ihr alles richtig gemacht habt und eure Version von NextGenGallery nicht massiv anders funktioniert als meine jetzige, dann habt ihr nun eure EXIF-Daten unter der Thickbox, wenn ihr ein Thumbnail anklickt. Das sieht dann so aus:

8 Gedanken zu „EXIF in NextGenGallery-Thickbox einbinden

  1. EIke

    Hat man dann nur noch die Exif Daten als Beschreibung oder ist auch Zusätzlicher Text möglich. Bzw.man könnte die Beschreibung dann ja auch mit in die new description packen, oder?

    Antworten
    1. jens Artikelautor

      Hi,

      Beschreibung bzw. zusätzlicher Text ist kein Problem. $newdescription kannst du dir puzzeln, wie du es brauchst.

      Ich habe die Keys des Arrays per Trial+Error herausgefunden. Du kannst testweise folgendes im letzten Codeschnipsel ändern:

      title=“< ?php print_r($exif); ?>“

      Dadurch wird das komplette Exif-Array mit allen Keys und Values unter dem Bild ausgegeben. Da kannst du dir dann rausschreiben, wie die einzelnen Werte heißen, und entsprechend an $newdescription weiterbasteln.

  2. EIke

    Cool, danke. Das heißt ja das ich mir auch direkt die Beschreibung aus den Exif Daten holen kann.
    Im Umkehrschluss ist damit das Beschreibungsfeld in NGG quasi überflüssig?
    kann man auch Zeilenumbrüche einfügen?

    Antworten
  3. jens Artikelautor

    Hi,

    sorry für die späte Antwort, völlig übersehen. Die Beschreibung von NGG kann man weglassen, wenn man die aus EXIF benutzt (wenn es da eine gibt?). Zeilenumbrüche kann man vermutlich ganz normal als HTML-Code mit
    einfügen, wenn das denn im title-Feld funktioniert. Müsstest du ausprobieren.

    Antworten
  4. Pingback: Links

Kommentar verfassen