Expand my Community achievements bar.

SOLVED

Sightly - Expression in Expression

Avatar

Level 3

Hi all,

I have four images 'abc-820x462-en.jpg', 'abc-590x394-en.jpg', 'abc-820x462-fr.jpg' and 'abc-590x394-fr.jpg' of different dimensions which are to be displayed as per the dimensions selected and also as per the language of the page.

We are able to select the image as per the dimension : 

<img  src="${video.imageSrc || (video.videoSize=='16:9'?'/is/image/content/dam/thdc/common/abc-820x462-en.jpg':'/is/image/content/dam/thdc/common/abc-590x394-en.jpg')}"

            alt="${video.imageMetadata.alt || '' }"/>

Not able to select the image using the language (en/fr)

Can we implement the sightly expression in the above expression again to select the language as well (abc-820x462-en.jpg or abc-820x462-fr.jpg)

1 Accepted Solution

Avatar

Correct answer by
Employee

Yes this is possible..

You can save the result into a var with an expression like this: data-sly-test.imageName="${.... }"

Then you can concatenate the language + extension via @ format, see here an example:

http://docs.adobe.com/docs/en/aem/6-1/develop/sightly/expression-language.html

View solution in original post

3 Replies

Avatar

Level 10

Its always better to do all this logic in your java class and send the relevant image to your model which will be used to display in your sightly template

Avatar

Correct answer by
Employee

Yes this is possible..

You can save the result into a var with an expression like this: data-sly-test.imageName="${.... }"

Then you can concatenate the language + extension via @ format, see here an example:

http://docs.adobe.com/docs/en/aem/6-1/develop/sightly/expression-language.html

Avatar

Level 10

For those reading this and wanting to know more about Sightly - see this web presentation: 

https://www.youtube.com/watch?v=QfvFWSQQ_0M