Bildbeschreibung in Slimbox/Thickbox anzeigen

Beitragsseiten

Häufig wird der Wunsch geäußert, in der Slimbox und Thickbox nicht nur den Bildtitel, sondern auch die Bildbeschreibung anzuzeigen. In diesem Artikel wird beschrieben, welche Änderungen in der JoomGallery 1.5.7 nötig sind.

Ab Version 2.0 der Galerie gibt es Optionen im Tab 'Frontend-Einstellungen' -> 'PopUp-Funktionen' des Konfigurationsmanagers, mit welchen der Bildtitel und/oder die Bildbeschreibung für die Boxen an-/ausgeschaltet werden können.

Allgemeines

Nach Klick auf z.B. ein Thumbnail lesen die Boxen aus dem HTML'a' Tag den Inhalt des 'title' Attribut und zeigen diesen in der vergrößerten Ansicht an.

HTML-Beispiel für die Slimbox:

<a title="Bildtitel" href="/Link zum größeren Bild" rel="lightbox[joomgallery]">
<img src="/Link zum Thumbnail" />
</a>

Thickbox:

<a title="Bildtitel" href="/Link zum größeren Bild" class="thickbox">
<img src="/Link zum Thumbnail" />
</a>

In beiden Fällen muss also der Inhalt des 'title' Attribut um die Bildbeschreibung ergänzt werden. In Versionen der JoomGallery vor 1.5.7 war der Änderungsaufwand gering. Es musste nur eine Codezeile in einer Datei (/components/com_joomgallery/helpers/html/joomgallery.php) geändert werden. Ab der Version 1.5.7 der JoomGallery wird das 'title' Attribut immer in den betreffenden Templates ausgegeben. Unabhängig davon, ob z.B. eine Slimbox aktiv ist.

Die Änderung muss deshalb nun in den Templates vorgenommen werden, in denen eine Box geöffnet werden kann und die auch von Euch aktiviert ist. Wenn zum Beispiel die Favoriten- oder Toplistenansicht nicht angezeigt wird, muss dort auch keine Änderung vorgenommen werden.

Zu empfehlen ist es, die Template Overrides zu nutzen, welche hier beschrieben sind. Damit wird verhindert, dass bei einem Update der JoomGallery die Änderungen überschrieben werden.

In den folgenden Beispielen werden die zu ändernden Codezeilen verkürzt und teilweise mehrzeilig angezeigt. Übernehmt die Änderungen also nicht zeilenweise per Copy & Paste. Legt Euch vor der Änderung eine Kopie der Originaldatei an.

Am Beispiel der Kategorieansicht einige allgemeine Erklärungen. Das Template findet Ihr in der Datei '/components/com_joomgallery/views/category/tmpl/default_images.php'. Öffnet die Datei in einem Editor, zum Beispiel Notepad++. In der Zeile 23 wird u.a. das title Attribut des a-Tag ausgegeben.

<a title="<?php echo $row->imgtitle; ?>"

Nach der Änderung:

<a title="<?php echo $row->imgtitle.
' '.
htmlspecialchars($row->imgtext, ENT_COMPAT, 'UTF-8'); ?>"

Die Funktion 'htmlspecialchars' ist nötig, um Sonderzeichen wie Anführungsstriche richtig darzustellen. Mehr Informationen zu dieser PHP-Funktion findet Ihr hier.

In dem Beispiel wird der Bildtitel, ein Leerzeichen und dann die Bildbeschreibung in einer Zeile angezeigt. Wenn die Bildbeschreibung in einem Editor von Joomla! eingegeben wurde, kann diese manchmal im HTML-Code von einem 'p' Tag umgeben sein. Dann wird die Bildbeschreibung unterhalb des Bildtitels angezeigt. Das kann anfangs ein wenig verwirrend sein. Wenn dieser Effekt nicht gewünscht ist, schaltet den Editor in HTML-Darstellung um und entfernt die umgebenden <p> Tags.

Falls die Bildbeschreibung immer unterhalb des Bildtitels angezeigt werden soll und der Editor nicht schon ein 'p' Tag eingefügt hat, ist eine kleine Ergänzung nötig:

<a title="<?php echo $row->imgtitle.
'<br />'.
htmlspecialchars($row->imgtext,ENT_COMPAT,'UTF-8');?>"

Ein weiteres Beispiel für die Anzeige 'Bildtitel: Bildbeschreibung':

<a title="<?php echo $row->imgtitle.
': '.
htmlspecialchars($row->imgtext, ENT_COMPAT, 'UTF-8'); ?>"

Ihr könt auch statt des ': ' eine HTML-Entität wie z.B. ein ' &raquo; ' einfügen.
Speichert die Datei, achtet auf die richtige Codierung 'UTF-8 ohne BOM'. Seht Euch dann im Frontend an, ob die Änderung funktioniert. Geht so schrittweise mit jeder Datei vor.

Joomla!®

Joomla! ist freie, unter der GNU/GPL-Lizenz veröffentlichte Software. Der Name Joomla! und das Logo werden unter einer limitierten Lizenz durch Open Source Matters als Rechteinhaber in den USA und anderen Staaten vergeben. Joom::Gallery ist weder Mitglied noch Teil des Joomla!-Projekts oder von Open Source Matters.