Zum Inhalt springen

SVG über IMAGE cObject als <img> einbinden

Erstellt am 20. Januar 2015 · 2 Antworten · letzte Antwort am 20. Januar 2015

Tags: Bilder, TYPO3 6.x, Frage

alfredbez ·

Moin,
ich versuche gerade folgenden HTML-Code mit Typoscript zu generieren:

<a href="/index.php">
    <img src="/fileadmin/templates/projektname/img/logo.svg" alt="">
</a>

Mein TS-Code:

lib.headerlogo = COA
lib.headerlogo {
  10 = IMAGE
  10 {
    file = /fileadmin/templates/projektname/img/logo.svg
    stdWrap {
      typolink {
        parameter = 1
      }
    }
  }
}

Das klappt leider nicht. Wenn ich allerdings die png-Datei angebe:

lib.headerlogo.10.file = /fileadmin/templates/projektname/img/logo.png

Dann wird alles richtig angezeigt, leider nur als png und nicht als svg.

Das cObject SVG (https://docs.typo3.org/m/typo3/reference-typoscript/main/en-us/ContentObjects/Svg/Index.html) habe ich mir auch schon angesehen, ist aber nicht das, was ich brauche, da es ein inline-SVG erzeugt (statt <img>-Tag).

toifel · · Beste Antwort

Warum dann über IMAGE? Das SVG muss i.d.R. ja nicht noch mal von ImageMagick bearbeitet werden.
Zudem brauchst du hier eigentlich kein COA, solange es nur ein einzelnes Unterobjekt gibt.

lib.headerLogo = TEXT
lib.headerLogo {
    value = <img src="/fileadmin/templates/projektname/img/logo.svg" />
    stdWrap.typolink.parameter = 1
  }
}
alfredbez ·

Das COA habe ich genommen, weil ich ursprünglich noch weitere Elemente einfügen wollte.

Ich habe auch schon überlegt es einfach als TEXT statt IMAGE einzubinden, schien mir irgendwie "unsauber", aber man sollte ja nicht zu pingelig sein...

Habe ich jetzt einfach so umgesetzt, läuft auch, danke dir ;-)

@toifel : da ist eine schließende Klammer zu viel

PS: Wenn man es als TEXT einbaut, dann bitte auch an das alt-Tag denken

Meine Lösung sieht jetzt so aus:

lib.headerlogo = TEXT
lib.headerlogo {
  value = <img src="/fileadmin/templates/projektname/img/logo.svg" alt="" />
  stdWrap.typolink.parameter = 1
}