Ergebnis 1 bis 10 von 10

Thema: Bild Twig Template ergänzen um Bildtitel

  1. #1
    Contao-Nutzer
    Registriert seit
    15.10.2015.
    Beiträge
    157

    Standard Bild Twig Template ergänzen um Bildtitel

    Hallo,

    die Twig Templates sind für mich immer wieder frustrierend, auch mit ChatGPT komm ich nicht voran.

    Wenn ein Bild ein Bildtitel hat, soll dieser zusätzlich ausgegeben werden:
    HTML-Code:
    <figcaption class="caption">
    <div class="inner">
    <p class="title">Imagefilm</p>
    <p class="caption">für ein Bremer Unternehmen</p>
    </div>
    </figcaption>
    Ebenso würde ich gerne beim Link den title Tag ergänzen, so dass dort zB stehen würde in dem Fall "Imagefilm - für ein Bremer Unternehmen" und nicht nur Imagefilm.

    Vielleicht hat Jemand schon ähnliches und kann mir einfach seinen Code und welches Template es ist zur Verfügung stellen.
    Ich hatte schon _picture.html.twig, _figure.html.twig, image.html.twig versucht... Cache gelöscht, aber irgendwie wurde das nichts.

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

    Standard

    Zitat Zitat von kalterwind Beitrag anzeigen
    Wenn ein Bild ein Bildtitel hat, soll dieser zusätzlich ausgegeben werden:
    Theoretisch solltest du dir das _figure Template anpassen können. Dort überschreibst du bspw. den caption_inner Block und gibst zusätzlich figure.metadata.title aus.
    » sponsor me via GitHub or Revolut

  3. #3
    Contao-Nutzer
    Registriert seit
    15.10.2015.
    Beiträge
    157

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Theoretisch solltest du dir das _figure Template anpassen können. Dort überschreibst du bspw. den caption_inner Block und gibst zusätzlich figure.metadata.title aus.
    Code:
    {% use "@Contao/component/_figure.html.twig" %}
    
    {% block caption_inner %}
      {% if figure.metadata is defined and figure.metadata.title %}
        <strong class="figure-title">{{ figure.metadata.title }}</strong>
      {% endif %}
     {% if figure.metadata is defined and figure.metadata.caption %}
        <span class="figure-caption">{{ figure.metadata.caption }}</span>
      {% endif %}
    {% endblock %}
    Jetzt wird mir beides angezeigt, allerdings nur so lange auch etwas in der Bildunterschrift steht, fehlt dies, sollte jedoch nur der Bildtitel erscheinen.
    Wie ich diese Twig Dinger verfluche, für mich nur Nachteile

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

    Standard

    Zitat Zitat von kalterwind Beitrag anzeigen
    fehlt dies, sollte jedoch nur der Bildtitel erscheinen.
    Dann musst du den gesamten caption Block überschreiben, um deine eigene Logik reinzubringen.


    Zitat Zitat von kalterwind Beitrag anzeigen
    Wie ich diese Twig Dinger verfluche, für mich nur Nachteile
    Mit Twig an sich hat das nichts zu tun. Wäre es ein PHP Template mit diesem Aufbau, hättest du ja das selbe Problem.
    » sponsor me via GitHub or Revolut

  5. #5
    Contao-Nutzer
    Registriert seit
    15.10.2015.
    Beiträge
    157

    Standard

    Zitat Zitat von Spooky Beitrag anzeigen
    Dann musst du den gesamten caption Block überschreiben, um deine eigene Logik reinzubringen.


    Mit Twig an sich hat das nichts zu tun. Wäre es ein PHP Template mit diesem Aufbau, hättest du ja das selbe Problem.
    Für mich hat es nur was mit den Twig-Gedöns zu tun, mit den normalen Templates hatte ich die letzten 15 Jahre keine Probleme, hier fehlt mir einfach das Verständnis.
    zB hätte ich dann erwartet, es müsste sein:

    Code:
    {% use "@Contao/component/_figure.html.twig" %}
    
    {% block figcaption %}
     <figcaption>
      {% if figure.metadata is defined and figure.metadata.title %}
        <strong class="figure-title">{{ figure.metadata.title }}</strong>
      {% endif %}
     {% if figure.metadata is defined and figure.metadata.caption %}
        <span class="figure-caption">{{ figure.metadata.caption }}</span>
      {% endif %}
      </figcaption>
    {% endblock %}
    Aber das funktioniert nicht. Der ganze Block wird ignoriert.

  6. #6
    Contao-Fan Avatar von lbableck
    Registriert seit
    10.06.2021.
    Beiträge
    380
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Der Block heißt caption, nicht figcaption, wie du es aktuell hast.

  7. #7
    Contao-Nutzer
    Registriert seit
    15.10.2015.
    Beiträge
    157

    Standard

    Zitat Zitat von lbableck Beitrag anzeigen
    Der Block heißt caption, nicht figcaption, wie du es aktuell hast.
    Code:
    {% use "@Contao/component/_figure.html.twig" %}
    
    {% block caption %}
      {% if figure.metadata is defined and figure.metadata.title %}
        <strong class="figure-title">{{ figure.metadata.title }}</strong>
      {% endif %}
     {% if figure.metadata is defined and figure.metadata.caption %}
        <span class="figure-caption">{{ figure.metadata.caption }}</span>
      {% endif %}
    {% endblock %}
    ? Wird aber genau so ignoriert.
    {% block caption_inner %} funktioniert, aber leider nur, wenn halt beide Felder gefüllt sind.

  8. #8
    Contao-Fan Avatar von lbableck
    Registriert seit
    10.06.2021.
    Beiträge
    380
    Contao-Projekt unterstützen

    Support Contao

    Standard

    Bei mir funktioniert das so. Cache hast du geleert?

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

    Standard

    Zitat Zitat von kalterwind Beitrag anzeigen
    Code:
    {% use "@Contao/component/_figure.html.twig" %}
    
    {% block caption %}
      {% if figure.metadata is defined and figure.metadata.title %}
        <strong class="figure-title">{{ figure.metadata.title }}</strong>
      {% endif %}
     {% if figure.metadata is defined and figure.metadata.caption %}
        <span class="figure-caption">{{ figure.metadata.caption }}</span>
      {% endif %}
    {% endblock %}
    ? Wird aber genau so ignoriert.
    {% block caption_inner %} funktioniert, aber leider nur, wenn halt beide Felder gefüllt sind.
    So würdest du jetzt kein <figcaption> Element mehr ausgeben, sondern direkt <span> bzw. <strong>.
    » sponsor me via GitHub or Revolut

  10. #10
    Contao-Nutzer
    Registriert seit
    15.10.2015.
    Beiträge
    157

    Standard

    Zitat Zitat von lbableck Beitrag anzeigen
    Bei mir funktioniert das so. Cache hast du geleert?
    Stimmt. Klappt jetzt wie gewollt, danke euch.
    Hatte den Contao Debug Modus an und zusätzlich per SSH den Cache immer geleert... aber wer weiss, was ich am Ende dann doch vergessen hatte.

Aktive Benutzer

Aktive Benutzer

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

Berechtigungen

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