Fast Gallery: Exif "Description" und "Comment" untereinander ausgeben

Frage: 

hallo rapsli,
vielen, vieln dank für dein spitzen modul fast gallery, es ist klasse!
habe die fast_gallery.class.php heute so verändert, dass die exif-felder "Comment" und "Description" UNTEREINANDER ausgegeben werden, durch ein
getrennt.
das funktioniert soweit, nur ist es so, daß das feld "Comment" immer mit einem vorangehenden "-" ausgegeben wird, z.b. so:

Ein schöner Tag im Klöntal
- nach einer langen Wanderung zu Vrenelis Gärtli waren alle erschöpft

das ist sehr schade, ohne "- " wäre es besser.

hier ist der veränderte Code:

$beschreibung = utf8_encode($exif['IFD0']['ImageDescription']);
$param['description'] = $beschreibung.'</br>';
$param['comment'] = utf8_encode($exif['COMPUTED']['UserComment']);

auch versuche mit substr($param['comment'],2) haben nichts gebracht, das "-" blieb, dafür wurde aber der Kommentar angefressen ...

hättest du mir einen tip? muß ich alles ganz anders machen?
es grüßt dich
adam

Antwort: 

Ich weiss zwar nicht, von welcher Version du ausgehst, aber hier mal meine Vermutung:

fast_gallery.module Zeile 409 - 433: Hier werden die ganzen exif Daten in ein Array umgeschrieben so dass keine leeren Arrayelement gibt.

fast_gallery.module Zeile 434: Hier kommt jetzt der - (Minuszeichen) hinzu:

$caption = implode(' - ', $caption_ar);

Wenn du das jetzt entsprechend änderst, z.B. implode('<br/>',$caption_ar), dann sollte das eigentlich dein Problem lösen. Implode macht aus einem Array einen String und verwendet zum "Zusammensetzen", das spezifizierte Zeichen. Daher kannst du dort auch einfach einen Leerschlag einsetzen, wenn du den Zeilenabstand bereits woanders eingefügt hast.

Noch etwas Grundsätzliches: Du hast in der Datei .class.php was geändert. Dies wird dir beim nächsten Update nicht viel Freude bereiten. Das Modul ist so geschrieben, dass eine noch bessere Trennung zwischen Logik und Präsentation erreicht wird. class.php ist eigentlich absolut Tabu, um Änderungen anzubringen!

Wie also sonst? fast_gallery.module beinhaltet die nötigen Funktionen, um das Modul an Drupal anzukoppeln und auch um die Ausgabe zu machen. Die Funktionen, welche zum Ausgeben von Code verwendet werden starten mit "theme_", in deinem Fall also theme_fast_gallery_framework_code. Du kannst diese Funktionen nehmen, nach template.php kopieren und umbenennen nach: myTheme_fast_gallery_framework_code (Cache leeren). Jetzt wird für die Ausgabe nicht der fast gallery Code genommen, sondern deine eigene Funktion, welche du natürlich nach blieben anpassen kannst.

Warum das Ganze? Ganz einfach. Beim nächsten Update musst du nichts ändern. Hier noch der Link ins Handbuch.

Don't Hack Drupal!

Danke!

Vielen Dank für Deine ebenso schnelle wie präzise Antwort. Ich bin gerade dabei, alles nach Deinem Rat umzusetzten. Don't hack drupal - wie wahr!

Adam