[TYPO3-german] Fluid cObject und IMAGE altText
Dr Dieter Porth
typo3 at mobger.de
Sat Sep 12 13:56:03 CEST 2015
Am 11.9.2015 um 14:50 schrieb Andrea Schmuttermair:
> Hi,
>
> ich habe ein Fluid cObject, das die UID eines Bildes bekommt und damit
> ein Typoscript Bild rendert.
> Das funktioniert auch wunderbar, bis auf den altText und title.
> Hier steht in der Frontend-Ausgabe: Error: no file object
> Ich denke das hat was mit file.import.current zu tun... vermutlich ein
> Verständnisproblem der TS Syntax.
>
> Hier der Fluid Aufruf:
> <f:cObject typoscriptObjectPath="lib.responsiveImage" data="{image.uid}"
>> </f:cObject>
> Und das Typoscript:
> lib.responsiveImage = IMAGE
> lib.responsiveImage {
> file {
> import.current = 1
> treatIdAsReference = 1
> }
> altText = file:current:alternative
> titleText = file:current:title
>
> sourceCollection {
> xlarge {
> width = 5000m
> srcsetCandidate = 5000w
> mediaQuery = (min-width: 2001px)
> dataKey = xlarge
> }
> large {
> width = 2000m
> srcsetCandidate = 2000w
> mediaQuery = (min-width: 1024px) and (max-width: 2000)
> dataKey = large
> }
> medium {
> width = 1024
> srcsetCandidate = 1024w
> mediaQuery = (min-width: 769px) and (max-width: 1024)
> dataKey = large
> }
> small {
> width = 768
> srcsetCandidate = 768w
> mediaQuery = (max-width: 768px)
> dataKey = small
> }
> }
> layout < tt_content.image.20.1.layout
> layoutKey = {$styles.content.imgtext.layoutKey}
> }
>
> Ergibt im Frontend:
>
> <img title="Error: no file object" alt="Error: no file object"
> srcset="/fileadmin/slider/Testslider_Bild.jpg
> 5000w,/fileadmin/_processed_/csm_Testslider_Bild_cb1125a3ed.jpg
> 2000w,/fileadmin/_processed_/csm_Testslider_Bild_1761a5fff8.jpg
> 1024w,/fileadmin/_processed_/csm_Testslider_Bild_52e34d3189.jpg 768w"
> src="/fileadmin/slider/Testslider_Bild.jpg" style="max-width: 100%; top:
> -5.36278%; left: 0px;">
>
> Debug vom Fluid image passt, {image.alternative} enthält den richtigen
> Alt-Text. Finde aber keine Möglichkeit das einfach ans cObject zu
> übergeben. Also muss ich es im cObject laden, oder?
> Mir reicht auch schon ne Idee wie ich da weiter komme, muss kein
> fertiges TS sein.
>
> LG Andrea
> _______________________________________________
> TYPO3-german mailing list
> TYPO3-german at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
Warum so kompliziert? Du hast doch schon das Image.-Objekt in deinem
Template.
cObject ist aus meiner Sicht der falsche Viewhelper
Ersetze in deinem Endausdruck die Werte durch Object-Variablen, und du hast alles, was du willst.
<img
title="Error: no file object"
alt="Error: no file object"
srcset="/fileadmin/slider/Testslider_Bild.jpg
5000w,/fileadmin/_processed_/csm_Testslider_Bild_cb1125a3ed.jpg
2000w,/fileadmin/_processed_/csm_Testslider_Bild_1761a5fff8.jpg
1024w,/fileadmin/_processed_/csm_Testslider_Bild_52e34d3189.jpg 768w"
src="/fileadmin/slider/Testslider_Bild.jpg"
style="max-width: 100%; top: -5.36278%; left: 0px;" />
===>
<img title="{image.title}"
alt="{image.alternative}"
srcset="{f:uri.image(src:'{image.uid}', width:'5000m'}
5000w,{f:uri.image(src:'{image.uid}', width:'2000m'}
2000w,{f:uri.image(src:'{image.uid}', width:'1024m'}
1024w,{f:uri.image(src:'{image.uid}', width:'754m'} 768w"
src="{f:uri.image(src:'{image.uid}', width:'5000m'}" style="max-width: 100%; top:
-5.36278%; left: 0px;">
Um die Rendering-Zeiten zu optimieren, würde ich wahrscheinlich die vier Inline-Viewhelper durch einen eigenen Viewhelper ersetzen, der bei einem optionalen Parameter-Array das gesamte Image-Tag inklusive der n Images in einem Durchlauf generiert.
Dieter
--
Dr. Dieter Porth -
Mein kleines TYPO3-Labor: http://www.mobger.de/
More information about the TYPO3-german
mailing list