Ergebnis 1 bis 1 von 1

Thema: Galerie mit gemeinsamer Ausgabe von Lightbox und Verlinkung

  1. #1
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.980
    Contao-Projekt unterstützen

    Support Contao

    Standard Galerie mit gemeinsamer Ausgabe von Lightbox und Verlinkung

    Die Aufgabenstellung war Folgende:
    Die Bilder in einer Galerie sollen sowohl eine Verlinkung bereitstellen, als auch eine Ansicht in der Lightbox.
    Im Frontend sollen diese beiden Möglichkeiten via CSS als Icon über dem Bild eingeblendet werden.

    Linktipp: contaokurs.at

    Angepasst bzw. angelegt habe ich ein Variantentemplate zum gallery.html.twig.
    /content_element/gallery/galerie-teaserbild.html.twig

    Code:
    {% extends "@Contao/content_element/gallery.html.twig" %}
    
    {% block list_attributes %}
        {# add class to <ul> #}
        {{ parent() }} class="masonry-thumbs grid-container row row-cols-{{ data.perRow }}" data-big="{{ data.perRow }}"
    {% endblock %}
    
    {% block list_item_attributes %}
        {# add class to <li> #}
        {{ parent() }} class="grid-item"
    {% endblock %}
    
    
    {% block figure_component %}
        {% set figure_attributes = attrs()
            .mergeWith(figure.options.attr|default)
            .mergeWith(figure_attributes|default)
        %}
    
        {% set img_src = figure.image.img.src %}
    
        <figure{{ figure_attributes }}>
            {# Media Block #}
            <div class="figure-media">
                {{ block('picture_component') }}
            </div>
    
            {# Icons Block: Colorbox und Link #}
            <div class="figure-icons">
                {# Lightbox Icon #}
                <a href="{{ img_src }}"
                   data-lightbox="lb{{ data.pid }}"
                   title="{{ figure.metadata.title|default }}"
                   class="figure-icon-lightbox"
                   target="_self">
                    <i class="bi bi-plus-lg" aria-hidden="true"></i>
                </a>
    
                {# Verlinkungs-Icon #}
                {% if figure.metadata.get('link') %}
                    <a href="{{ figure.metadata.get('link') }}"
                       title="{{ figure.metadata.title|default }}"
                       class="figure-icon-link"
                       target="_self">
                        <i class="bi bi-link-45deg" aria-hidden="true"></i>
                    </a>
                {% endif %}
            </div>
    
            {# Caption Block #}
            {% block caption %}
                {{ parent() }}
            {% endblock %}
        </figure>
        
    {% endblock %}
    Hinweis:
    Es empfiehlt sich, die zu verwendeten Bilder nicht andersweitig einzusetzen » im Standard verlinkt nämlich Contao die Bilder immer, wenn in den Metadaten eine Verlinkung eingetragen ist und wenn das Häkchen in der Galerie für "Vergrössern/neues Fenster" gesetzt ist, wird immer in neuem Tab geöffnet.
    Sprich, die Lightbox würde hier dann nicht mehr greifen, wenn selbige Bilder z.B. in einem Inhaltselement Text eingefügt wird.

    [edit | 23.02.2025:]
    hier geht es zur Projektwebseite
    Geändert von derRenner (23.02.2025 um 10:13 Uhr)
    Grüsse
    Bernhard


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
  •