Mehrere Bildergalerien in einer Lightbox öffnen

(Kommentare: 5)

Die Bilder aus mehreren Galerien in einer Lightbox öffnen

Sind auf einer Webseit ein Contao zwei oder mehrere Galerien eingebunden, werden diese getrennt in der Lightbox geöffnet, so dass man nicht über alle Bilder in der Lightbox blättern kann. Eine kleine Templateanpassung ändert dieses Verhalten, so dass alle Bilder die selbe Lightbox ansteuern.

Benötigt:

  • Keine Voraussetzungen oder Erweiterungen

Anleitung:

  1. Als erstes legst du von dem Template "gallery_default" eine Kopie an, die du beispielsweise "gallery_gemeinsam" benennst.
  2. Dieses Template ersetzt du die PHP-Anweisung
    <?php echo $col->attributes; ?>
    durch
    data-lightbox="lbcommon" (jeweils mit Leereichen davor und danach, "lbcommon" muss eine eindeutige ID sein)
  3. Du weißt allen Galerien, die auf einer Seite zusammen geöffnet werden sollen, dieses Template zu.

Zurück

Einen Kommentar schreiben

Kommentar von Stef |

data-lightbox sollte nur bei html5 verwendet werden unter xhtml ist wie bisher rel= angesagt

Kommentar von Luis |

Ich arbeite (noch) mit Contao 2.9.5 und die Anleitung Punkt 2 funktioniert so nicht. Ich hab kurz geprüft was gallery_default an dieser Stelle generieren würde, in meinem Fall ...
data-lightbox="lb105"
... und habe nun dies statt data-lightbox="lbcommon" in mein Template gallery_default eingesetzt. Und es funktioniert.
Irgendwelche IDs musste ich nicht zuweisen.

Gilt deine Anleitung nur für höhere Contao-Versionen?

Kommentar von Dominik |

-> (jeweils mit Leereichen davor und danach, "lbcommon" muss eine eindeutige ID sein)

Das habe ich nicht verstanden … Was bedeutet jeweils? Was jeweils? Und wo genau müssen die Leerzeichen sein?

Bitte ergänzen.

Danke
DOM

Kommentar von Jan |

Hallo, muss man die ID dann bei jeder Galerie einfügen? Bei mir funktioniert es leider nicht - Contao 3.0.5.

Meine Vorlage sieht nun so aus:

<ul>
<?php foreach ($this->body as $class=>$row): ?>
<?php foreach ($row as $col): ?>
<?php if ($col->addImage): ?>
<li class="<?php echo $col->class; ?>">
<figure class="image_container"<?php if ($col->margin): ?> style="<?php echo $col->margin; ?>"<?php endif; ?>>
<?php if ($col->href): ?>
<a href="<?php echo $col->href; ?> data-lightbox="lbcommon" title="<?php echo $col->alt; ?>"><img src="<?php echo $col->src; ?>"<?php echo $col->imgSize; ?> alt="<?php echo $col->alt; ?>"></a>
<?php else: ?>
<img src="<?php echo $col->src; ?>"<?php echo $col->imgSize; ?> alt="<?php echo $col->alt; ?>">
<?php endif; ?>
<?php if ($col->caption): ?>
<figcaption class="caption" style="width:<?php echo $col->arrSize[0]; ?>px"><?php echo $col->caption; ?></figcaption>
<?php endif; ?>
</figure>
</li>
<?php endif; ?>
<?php endforeach; ?>
<?php endforeach; ?>
</ul>

Kommentar von Jan |

Entschuldige, alles erledigt. Ich würde aber trotzdem noch einmal hier erwähnen, dass man auch die ID jeder Galerie zuweisen muss. Vielen Dank für Deine Einleitung. Mach es gut.

Jan