Ankündigung

Einklappen
Keine Ankündigung bisher.

Image alt, title und caption automatisiert

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Image alt, title und caption automatisiert

    Hallo zusammen,

    ich möchte bei der Ausgabe von Produktlisten und Produktdetail-Seite die Attribute der Listenbilder automatisiert anpassen im Ausgabe-Template.

    Immerhin hab ich herausgefunden, dass die Listenbild-Felder auf der Detail-Seite über
    HTML-Code:
    $this->field('image_alt')
    $this->field('image_caption')
    $this->field('image_title')
    geliefert werden. Allerdings bewirkt eine Änderung dieser Felder im Template keine Änderung der Atrribute in der Ausgabe des Listenbildes:
    HTML-Code:
    $this->field('image')->html()

    Wie kann ich im Ausgabe-Template die Attribute neu belegen bzw. deren Ausgabe bewerkstelligen?
    ich hoffe mal, ich hab mich verständlich ausgedrückt.

    Danke und Grüße,
    Misio

  • #2
    Hi,
    welche Contao Version? Hier gibt es deutliche Unterschiede zwischen 3.5 und 4.4.

    Generell kann man mit der direkten $this->field()... Methode nur reale Felder des Datensatzes abfragen.
    Ab Contao 4 zapft Contao die Dateiverwaltung an für die Meta-Daten eines Bildes. Im Datensatz wird nur überschrieben. Hier muss man bei einer manuellen Abfrage (man nutzt nicht die ->html() Methode), die Dateiverwaltung abfragen, nicht mehr den Datensatz.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Contao 4.4

      Allerdings geht es mir nicht um Attribute der Dateiverwaltung, sondern um die Attribute von CC Datensätzen. Hier gibt es ja das "Listenbild" mit den Attributen. Wenn diese Attribute innerhalb eines CC-Datensatzes nicht gesetzt (also leer) sind, dann sollten diese im Ausgabe-Template anhand von anderen CC-Produktdaten automatisiert ergänzt werden

      ich habe es für das alt-Attribut jetzt auf die Schnelle so gelöst, wobei $motiv und $artist aus anderen CC-Daten vorher generiert werden

      HTML-Code:
      $alt_text = $motiv." - ".$artist;
      $image = deserialize($entry->field('image')->html());
      $teile = explode("alt",$image);
      $image2 = $teile[0].' alt="'.$alt_text.'"'.$teile[1];
      echo $image2;
      Gibt es eine bessere Lösung?

      Kommentar


      • #4
        Naja, am Ende des Tages muss es für Dich gut sein.
        Wenn diese Lösung passabel für dich ist, ist es doch ok. Die "bessere" Lösung ist oben erklärt. Contao 4 nimmt die Meta-Daten eines Bild-Feldes aus der Dateiverwaltung oder respektiv direkt aus dem Datensatz, wenn gesetzt.

        --

        ps. Du setzt ja den alt Text nicht mehr über Bildbezogene Felder, sondern über komplett andere Felder.
        Ich würde empfehlen das Bild mit Hilfe des Contao {{image}} Inserttags in diesem Fall erstellen zu lassen. Das Inserttag erlaubt die Übergabe eines alt Werts.

        https://de.contaowiki.org/Insert-Tags
        Zuletzt geändert von Tim; 14.08.2019, 10:07.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Hallo,
          ich habe ein Ähnliches Problem, aber unter 3.5 und würde gerne im Backend schon bein Anlagen eines Objektes beim Hauptbild einen alt-Tag eingeben, Wie kann ich das lösen? Viele Grüße Matthias

          Kommentar


          • #6
            Zitat von MatthiasG Beitrag anzeigen
            Hallo,
            ich habe ein Ähnliches Problem, aber unter 3.5 und würde gerne im Backend schon bein Anlagen eines Objektes beim Hauptbild einen alt-Tag eingeben, Wie kann ich das lösen? Viele Grüße Matthias
            Im Bild-Attribut unter Meine Inhaltselemente das optionale "alt" - Feld anchecken.
            http://www.premium-contao-themes.com

            Kommentar

            Lädt...
            X