Ergebnis 1 bis 20 von 20

Thema: GLightbox mit Bildunterschrift

  1. #1
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard GLightbox mit Bildunterschrift

    Hallo zusammen,

    da „Lightcase“ als Lightbox-Erweiterung nicht mehr länger gepflegt wird, bin ich zu GLightbox gewechselt. Leider lässt sich hier nicht so komfortabel einstellen, dass die für das Bild hinterlegte Bildunterschrift auch in der Lightbox angezeigt werden soll.

    Nach meiner Recherche im Netz hätte ich im Moment nur die Lösung, die Templates für Bilder anzupassen. Das würde ich aber gern vermeiden.

    Gibt es eine Möglichkeit, das im JS-Template von GLightbox einzustellen?
    LG
    PAndroid

  2. #2
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.161
    Partner-ID
    10107

    Standard

    Evt. kannst du's mit einem der Events per JavaScript setzen. Ansonsten kannst du folgende Template Anpassung machen:
    PHP-Code:
    <!-- templates/image.html5 -->
    <?php

    if ($this->caption) {
      
    $this->attributes .= ' data-caption="'.Contao\StringUtil::specialcharsAttribute(strip_tags($this->caption)).'"';
    }

    ?>
    <?php $this
    ->extend('image'); ?>
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Fan Avatar von pandroid
    Registriert seit
    15.08.2009.
    Ort
    Jena
    Beiträge
    314

    Standard

    Danke Spooky, für die superschnelle Antwort. Ich schau mir mal die Lösung über das Template an. Beim Javascript komme ich leider nicht weiter.
    LG
    PAndroid

  4. #4
    Contao-Nutzer Avatar von Niels H
    Registriert seit
    14.08.2012.
    Ort
    Köln
    Beiträge
    84
    Partner-ID
    11984

    Standard

    Habe es mit folgender templates/js_glightbox.html5 umgesetzt:

    HTML-Code:
    <?php
    
    use Contao\Template;
    
    $GLOBALS['TL_CSS']['glightbox'] = 'bundles/contaoglightbox/css/glightbox.min.css|static';
    echo Template::generateScriptTag('bundles/contaoglightbox/js/glightbox.min.js', false, null);
    
    ?>
    
    <script>
    (function(){
      'use strict';
      document.querySelectorAll('a[data-lightbox]').forEach((element) => {
        if (!!element.dataset.lightbox) {
          element.setAttribute('data-gallery', element.dataset.lightbox);
          const caption = element.nextElementSibling;
          if (!!caption) {
            element.setAttribute('data-glightbox', 'title: '+caption.textContent);
          }
        }
      });
      GLightbox({
        selector: 'a[data-lightbox]',
        zoomable: false
      });
    })();
    </script>

  5. #5
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    872

    Standard

    Das Problem interessiert mich auch gerade da ich gerne auf GLightbox umstellen möchte
    @Niels H
    Deine Lösung funktioniert jedoch bei mir leider nicht, es wird nach wie vor der "title" ausgegeben nicht aber der Inhalt der figcaption .

  6. #6
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    872

    Standard

    Ok, es liegt daran dass ich das nicht mit dem Galerie-Element getestet habe .
    Wie würde das für ein Bild Element funktionieren? Ich bekomme das nicht hin :-(

  7. #7
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    872

    Standard

    War ja doch einfach, ich war nur blind - also wenn man Zeile 14 und 20 ausblendet dann geht's ja auch außerhalb der Galerie.

    Seltsam ist, dass wenn man z.B erst ein Einzelbild hat welches mit der Lightbox geöffnet werden kann und danach ein weiteres oder eine Galerie , dann verhält sich die Lightbox so als wäre es eine zusammenhängende Galerie - sprich man kann komplett "durchklicken" .

    Passiert aber nur wenn man das Einzelbild zuerst anklickt- umgekehrt nicht.

    Kann das jemand nachstellen und mir ggf. sagen wie ich das unterbinden kann?

  8. #8
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    872

    Standard

    Hab da leider noch keine Lösung gefunden und hätte auch noch eine weitere Frage.
    Wie kann ich das mit einem Counter erweitern (also Bild 1 von x usw...) ?

    Ich habe zwar dazu eine Lösung gefunden
    https://github.com/biati-digital/gli...ment-537288375

    aber ich habe Schwierigkeiten dass in der Erweiterung zu realisieren.

    Das Script habe ich ins Template integriert aber anscheinend muss da noch was angepasst werden was ich übersehe

  9. #9
    Contao-Urgestein Avatar von tblumrich
    Registriert seit
    25.06.2009.
    Ort
    Feldberger Seenlandschaft
    Beiträge
    2.225
    Partner-ID
    7979
    User beschenken
    Wunschliste

    Standard

    Zitat Zitat von Bennie Beitrag anzeigen
    War ja doch einfach, ich war nur blind - also wenn man Zeile 14 und 20 ausblendet dann geht's ja auch außerhalb der Galerie.

    Seltsam ist, dass wenn man z.B erst ein Einzelbild hat welches mit der Lightbox geöffnet werden kann und danach ein weiteres oder eine Galerie , dann verhält sich die Lightbox so als wäre es eine zusammenhängende Galerie - sprich man kann komplett "durchklicken" .

    Passiert aber nur wenn man das Einzelbild zuerst anklickt- umgekehrt nicht.

    Kann das jemand nachstellen und mir ggf. sagen wie ich das unterbinden kann?
    Danke für die Lösung, hatte auch schon rumprobiert… ansonsten kann ich das Verhalten bestätigen … es wird bei mehreren Bildern oder Galerien immer komplett durchgeblättert über mehrere Inhaltselemente hinweg.
    Irgendwo im Forum war das auch schonmal als Hinweis aufgetaucht … ohne Lösungsansatz leider.
    blucomp | Webdesign & Onlinelösungen

  10. #10
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    872

    Standard

    @tblumrich danke du bis der Erste der mir das mal bestätigt
    Anscheinend wird die GLightbox nicht so häufig genutzt.
    Daraus ergibt sich für mich die Frage was denn die anderen hier so nutzen oder einbauen, wenn sie nicht! die (Standard) colorbox nutzen?

  11. #11
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.161
    Partner-ID
    10107

    Standard

    Zitat Zitat von tblumrich Beitrag anzeigen
    Danke für die Lösung, hatte auch schon rumprobiert… ansonsten kann ich das Verhalten bestätigen … es wird bei mehreren Bildern oder Galerien immer komplett durchgeblättert über mehrere Inhaltselemente hinweg.
    Irgendwo im Forum war das auch schonmal als Hinweis aufgetaucht … ohne Lösungsansatz leider.
    https://github.com/contao/contao/issues/4029
    » sponsor me via GitHub or Revolut

  12. #12
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    872

    Standard

    Und was heißt das jetzt? Ich lese das so, dass es keine (einfache) Lösung gibt ??

  13. #13
    Community-Moderator
    Wandelndes Contao-Lexikon
    Avatar von Spooky
    Registriert seit
    12.04.2012.
    Ort
    Scotland
    Beiträge
    37.161
    Partner-ID
    10107

    Standard

    Dazu machst du am besten einen anderen Thread auf oder postest in einem bestehenden Thread, wo das Problem bereits behandelt wird. In diesem Thread geht es um die Caption.
    » sponsor me via GitHub or Revolut

  14. #14
    Contao-Fan
    Registriert seit
    10.08.2011.
    Ort
    Berlin
    Beiträge
    872

    Standard

    @spooky ok - hab mal hier weitergemacht

  15. #15
    Contao-Nutzer
    Registriert seit
    16.05.2013.
    Beiträge
    26

    Standard

    Standardmäßig fügt die mitgelieferte js_glightbox.html5 den Titel aus den Metadaten ein, mit diesem Ergebnis:
    HTML-Code:
    <div class="gdesc-inner">
      <h4 class="gslide-title" id="gSlideTitle_0">Dies ist der Titel aus den Metadaten</h4>
    </div>
    Bei der Umsetzung, die Niels H verwendet, wird dieses HTML erzeugt:
    HTML-Code:
    <div class="gdesc-inner">
      <h4 class="gslide-title" id="gSlideTitle_0">Dies ist der Untertitel (Bildunterschrift) aus den Metadaten</h4>
    </div>
    Der Titel wird nicht mehr angezeigt und in der H4-Überschrift steht anstelle des Titels die Bildunterschrift.

    Auf der Beispiel-Website https://biati-digital.github.io/glightbox/#examples sieht der Quelltext zu "Images with Description" so aus:
    HTML-Code:
    <div class="gdesc-inner">
      <h4 class="gslide-title" id="gSlideTitle_0">Description Bottom</h4>
      <div class="gslide-desc" id="gSlideDesc_0">You can set the position of the description <a href="http://google.com">with a link to Google</a></div>
    </div>
    Weiß evtl. jemand, wie der Code in js_glightbox.html5 angepasst werden muss, damit sowohl der Titel als auch die Bildunterschrift ausgegeben werden?

  16. #16
    Contao-Nutzer Avatar von delirius
    Registriert seit
    17.01.2011.
    Ort
    Aarau
    Beiträge
    186
    Partner-ID
    6722

    Standard

    Bei einer Contao 5 Installation mit Twig kannst du im Link das Attribute data-description ergänzen. Das Attribute wird von GLightbox übernommen.

    Code:
    {% extends "@Contao_ContaoCoreBundle/content_element/image.html.twig" %}
    
    {% block media_link %}
      {% set link_attributes = attrs(figure.linkAttributes(true)|default)
      .setIfExists('data-description', figure.hasLightbox and figure.hasMetadata ? figure.metadata.caption : null)
    %}
    {{ parent() }}
    {% endblock %}
    HTML-Code:
    <div class="gdesc-inner">
        <h4 class="gslide-title" id="gSlideTitle_0">Titel</h4>
        <div class="gslide-desc" id="gSlideDesc_0">Beschreibung</div>
    </div>
    Daniel Herren www.delirius.ch

  17. #17
    Contao-Nutzer
    Registriert seit
    16.05.2013.
    Beiträge
    26

    Standard

    Besten Dank für die Erklärung und den Twig-Code! Er funktioniert sowohl im Bild-Element als auch im Galerie-Element.

    Solche Code-Beispiele sind überaus hilfreich für Nicht-Entwickler und Twig-Neulinge, die sich mit den Twig-Templates näher vertraut machen wollen.

  18. #18
    Contao-Nutzer
    Registriert seit
    16.05.2013.
    Beiträge
    26

    Standard

    Es gibt Erweiterungen, die (noch) nicht auf Twig-Templates basieren.

    Beispielsweise steht in der Erweiterung "bwein-net/contao-gallery" im Template "album_full.html5":
    PHP-Code:
    <div class="ce_gallery block">
      <?php $this->insert('gallery_default'$this->arrData); ?>
    </div>
    Die GLightbox zeigt mit der alten Galerie nur den Titel an.
    HTML-Code:
    <div class="gdesc-inner">
      <h4 class="gslide-title" id="gSlideTitle_0">Dies ist der Titel aus den Metadaten</h4>
    </div>>
    Der Twig-Code zeigt hier keine Wirkung. In der Developer Documentation von Contao steht etwas von "Legacy-Interoperabilität", was sich für mich so anhört, als könnte dies vielleicht ein Ansatz sein. Ob dies so ist, dazu fehlt mir jedoch das Fachwissen.

    Ich testete auch den
    PHP-Code:
    <!-- templates/image.html5 -->
    <?php

    if ($this->caption) {
      
    $this->attributes .= ' data-caption="'.Contao\StringUtil::specialcharsAttribute(strip_tags($this->caption)).'"';
    }

    ?>
    <?php $this
    ->extend('image'); ?>
    von Spooky, den ich in eine templates/image.html5 einfügte. Das zeigte leider ebenfalls keine Wirkung.

    Gibt es evtl. für einen solchen Anwendungsfall in Contao 5.3 eine Möglichkeit, sowohl Titel als auch Bildunterschrift in der GLightbox auszugegeben?

  19. #19
    Contao-Nutzer Avatar von delirius
    Registriert seit
    17.01.2011.
    Ort
    Aarau
    Beiträge
    186
    Partner-ID
    6722

    Standard

    Das obere Beispiel basiert darauf, dass GLightbox das Data-Attribute «data-description» übernimmt.

    Ich kenne die Erweiterung bwein-net/contao-gallery nicht. Aber falls das template/image.html5 greift, kannst du versuchen das Data-Attribute auf «data-description» zu ändern.

    Code:
      $this->attributes .= ' data-description="'.Contao\StringUtil::specialcharsAttribute(strip_tags($this->caption)).'"';
    Daniel Herren www.delirius.ch

  20. #20
    Contao-Nutzer
    Registriert seit
    16.05.2013.
    Beiträge
    26

    Standard

    Magic! Das funktioniert
    Vielen Dank!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •