Java method "com.ch5finland.genelec.cms.service.impl.CMSContentFormatterServiceImpl.getMarkdown(String)" threw an exception when invoked on com.ch5finland.genelec.cms.service.impl.CMSContentFormatterServiceImpl object "com.ch5finland.genelec.cms.service.impl.CMSContentFormatterServiceImpl@61e9ea58"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign summary = cmsContentFormatter... [in template "20116#20152#301848" at line 43, column 9]
----
1<#include "${templatesPath}/300307" />
2
3<#assign portletId = "p_p_id_" + themeDisplay.getPortletDisplay().getId() + "_">
4
5<#list entities as cmsEntity>
6 <#assign name = "">
7 <#if cmsEntity.getLocalizedField(profile, "/entity/fields/title")?has_content>
8 <#assign name = cmsEntity.getLocalizedField(profile, "/entity/fields/title")>
9 <#else>
10 <#if cmsEntity.getLocalizedField(profile, "/entity/fields/name")?has_content>
11 <#assign name = cmsEntity.getLocalizedField(profile, "/entity/fields/name")>
12 </#if>
13 </#if>
14
15 <#if cmsEntity.getField(profile, "/entity/relationships/video")?has_content>
16 <#if cmsEntity.getField(profile, "/entity/relationships/video/properties/url")?has_content >
17 <#assign bgVideo = cmsEntity.getField(profile, "/entity/relationships/video/properties/url") >
18 </#if>
19 <#if cmsEntity.getField(profile, "/entity/relationships/video/assets/videoFiles")?has_content >
20 <#assign videoFiles = cmsEntity.getField(profile, "/entity/relationships/video/assets/videoFiles") >
21 <#assign bgVideo = videoFiles.get(0).url >
22 </#if>
23 </#if>
24
25 <#if cmsEntity.getLocalizedField(profile, "/entity/assets/mainImage")?has_content>
26 <#assign mainImage = cmsEntity.getLocalizedField(profile, "/entity/assets/mainImage")>
27 <#elseif cmsEntity.getField(profile, "/entity/assets/image")?has_content>
28 <#assign mainImage = cmsEntity.getField(profile, "/entity/assets/image/url")>
29 <#else>
30 <#assign mainImage = "">
31 </#if>
32
33 <#assign mobileImg = "">
34 <#if cmsEntity.getLocalizedField(profile, "/entity/assets/mobileMainImage")?has_content>
35 <#assign mobileMainImage = cmsEntity.getLocalizedField(profile, "/entity/assets/mobileMainImage") >
36 <#if mobileMainImage.url?has_content>
37 <#assign mobileImg = mobileMainImage.url>
38 </#if>
39 </#if>
40
41 <#assign entity = cmsEntity.getField(profile, "/entity") >
42 <#if cmsEntity.getField(profile, "/entity/fields/summary")?has_content>
43 <#assign summary = cmsContentFormatterService.getMarkdown(cmsEntity.getLocalizedField(profile, "/entity/fields/summary"))>
44 </#if>
45 <#if url?has_content>
46 <#assign pageUrl = url>
47 <#elseif cmsContentService.getUrlForEntity(themeDisplay, entity.id)?has_content>
48 <#assign pageUrl = cmsContentService.getUrlForEntity(themeDisplay, entity.id)>
49 <#elseif cmsEntity.getField(profile, "/entity/fields/url")?has_content>
50 <#assign pageUrl = cmsEntity.getField(profile, "/entity/fields/url")>
51 <#else>
52 <#assign pageUrl = "">
53 </#if>
54</#list>
55
56<div class="parallax-window <#if bgVideo??>d-xl-none</#if>" data-parallax="scroll"></div>
57<div class="gradient-layer-black-left <#if bgVideo??>d-xl-none</#if>"></div>
58
59
60 <section class="background">
61 <div class="container container-1440 container-padding <#if bgVideo??>d-xl-none</#if>">
62 <div class="row">
63 <div class="col-lg-6">
64 <h1 class="text-light product-page-heading">${name}</h1>
65
66 <#if cmsEntity.getField(profile, "/entity/fields/summary")?has_content>
67 <div class="product-page-intro text-light">${summary}</div>
68 </#if>
69 <#if pageUrl?has_content && callToAction?has_content>
70 <a class="btn btn-light btn-medium" href="${pageUrl}" role="button">
71 ${callToAction}
72 </a>
73 </#if>
74
75 </div>
76 </div>
77 </div>
78
79 <#if bgVideo??>
80 <div class="bg-video d-none d-xl-block">
81 <#if bgVideo?contains("youtube") || bgVideo?contains("youtu.be")>
82 <#if bgVideo?contains("youtu.be")>
83 <#-- ie. youtu.be/x_ptCvAzbKI -->
84 <#assign videoId = bgVideo?keep_after("youtu.be/") >
85 <#else>
86 <#-- ie. https://www.youtube.com/watch?v=x_ptCvAzbKI -->
87 <#assign videoId = bgVideo?replace("^.*\\?v=([\\w-_]*).*", "$1", "r") >
88 </#if>
89
90 <iframe frameborder="0" style="width: 100%; aspect-ratio: 16 / 9; border: none;" src="https://www.youtube-nocookie.com/embed/${videoId}?autoplay=1&controls=0&loop=1&mute=1&playlist=${videoId}"></iframe>
91 <#else>
92 <video muted="" playsinline="" autoplay="" loop="" style="background-image: url('${mainImage.url}');" >
93 <source src="${bgVideo}">
94 </video>
95 </#if>
96 <div class="video-content-container">
97 <div class="container container-1440 container-padding">
98 <div class="row">
99 <div class="col-lg-6">
100 <h1 class="text-light product-page-heading">${name}</h1>
101
102 <#if cmsEntity.getField(profile, "/entity/fields/summary")?has_content>
103 <div class="product-page-intro text-light">${summary}</div>
104 </#if>
105 <#if pageUrl?has_content && callToAction?has_content>
106 <a class="btn btn-light btn-medium" href="${pageUrl}" role="button">
107 ${callToAction}
108 </a>
109 </#if>
110
111 </div>
112 </div>
113 </div>
114 </div>
115
116 </div>
117
118 </#if>
119 </section>
120
121<@parallaxBackground url="${mainImage.url}" speed="0.4" mobileUrl="${mobileImg}" portletId="${portletId}" />
Travel deeper into global music
United by our love for celebrating and shining a light on the world’s many different interpretations of musical art, Genelec and Helsinki’s prestigious Sibelius Academy are delighted to join forces for this special series of podcasts.
Full of inspiring interviews, live performances and extraordinary instruments, this first series is set to offer you ten unique and fascinating musical stories – with a new instrumentalist featured each month.
Enjoy exclusive live performances
Not only will you discover the diverse histories, learning journeys and creative processes of musicians with a rare level of skill, you will have the opportunity to experience their personal sound and exceptional playing – as each performs a piece of their choice.
So, come and feed your passion for global music and culture! Scroll down the page and press play to start watching Uncovering Music IDs.
Meet your host – Mehrnoosh Zolfaghari
Mehrnoosh is an internationally recognised composer, musician and player of the santoor (Persian hammered dulcimer) based in Finland. She graduated with a Master’s in Music Performance in Iranian Classical Music at the University of Tehran in Iran and also at Finland’s UNIARTS/Sibelius Academy with a Master’s in Global Music.
Rooted in Persian music and inspired by global and jazz traditions, her music blends heritage and innovation through storytelling, improvisation and cross-cultural collaboration. As a part-time teacher of Persian music at Sibelius Academy, she brings her musical world into dialogue with others – bridging musical heritage and culture through music, creative interaction and diverse community.
More about her work: https://www.youtube.com/@MehrnooshZolfaghari/featured
Follow Mehrnoosh on Instagram: https://www.instagram.com/mehrnoosh_zolfaghari/#