Newsletter vom xx. Mai 2019
Newsletter
Newsletter
Asset Publisher
Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing: ==> journalArticleLocalService.fetchLatestArticle(classPK) [in template "20115#20151#NEWSLETTER" at line 709, column 15] ---- Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: article = journalArticleLocalService... [in template "20115#20151#NEWSLETTER" in macro "showVideo" at line 709, column 5] - Reached through: #assign-container [in template "20115#20151#NEWSLETTER" in macro "showVideo" at line 708, column 5] - Reached through: @showVideo entryClassPK, entry?counter [in template "20115#20151#NEWSLETTER" at line 418, column 49] ----
1<#-- @ftlvariable name="journalArticleLocalService" type="com.liferay.journal.service.JournalArticleLocalService" -->
2<#-- @ftlvariable name="assetEntryLocalService" type="com.liferay.asset.kernel.service.AssetEntryLocalService" -->
3<#-- @ftlvariable name="assetCategoryLocalService" type="com.liferay.asset.kernel.service.AssetCategoryLocalService" -->
4<#-- @ftlvariable name="journalArticle" type="com.liferay.journal.model.JournalArticle" -->
5<#-- @ftlvariable name="assetEntry" type="com.liferay.asset.kernel.model.AssetEntry" -->
6<#-- @ftlvariable name="assetCategories" type="java.util.List<liferay.asset.kernel.model.AssetCategory>" -->
7<#-- @ftlvariable name="companyLocalService" type="com.liferay.portal.kernel.service.CompanyLocalService" -->
8<#-- @ftlvariable name="groupLocalService" type="com.liferay.portal.kernel.service.GroupLocalService" -->
9<#-- @ftlvariable name="layoutSetLocalService" type="com.liferay.portal.kernel.service.LayoutSetLocalService" -->
10<#assign
11 companyLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.CompanyLocalService")
12 groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService")
13 journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
14 assetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")
15 assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
16 assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
17 layoutSetLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutSetLocalService")
18 journalArticle = journalArticleLocalService.getArticle(groupId, .vars['reserved-article-id'].data)
19 resourcePrimKey = journalArticle.resourcePrimKey
20 assetEntry = assetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", resourcePrimKey)
21 assetCategories = assetCategoryLocalService.getAssetEntryAssetCategories(assetEntry.entryId)
22 articleContent = journalArticle.content
23 docXml = saxReaderUtil.read(articleContent)
24 intro = docXml.valueOf("//dynamic-element[@name='intro']/dynamic-content/text()")
25 text = docXml.valueOf("//dynamic-element[@name='text']/dynamic-content/text()")
26 headlineNews = docXml.valueOf("//dynamic-element[@name='headlineNews']/dynamic-content/text()")
27 headlineEvents = docXml.valueOf("//dynamic-element[@name='headlineEvents']/dynamic-content/text()")
28 headlineProjekte = docXml.valueOf("//dynamic-element[@name='headlineProjekte']/dynamic-content/text()")
29 headlineThemen= docXml.valueOf("//dynamic-element[@name='headlineThemen']/dynamic-content/text()")
30 headlineVideos= docXml.valueOf("//dynamic-element[@name='headlineVideos']/dynamic-content/text()")
31
32 group = groupLocalService.getGroup(journalArticle.groupId)
33 virtualHostname = group.publicLayoutSet.virtualHostname!company.virtualHostname
34
35 viewURL = getViewURL(journalArticle)
36
37 dateFormat = dateFormatFactory.getSimpleDateFormat("dd.MM.yyyy")
38
39 hasLayout = layout??
40
41 domainHost = virtualHostname
42
43 copyrights = []
44/>
45<#if hasLayout>
46 <#assign intro = intro?replace("[$FULL_NAME$]", "") />
47 <#assign intro = intro?replace("[$SPACE_FULL_NAME$]", "") />
48 <#assign text = text?replace("[$FULL_NAME$]", "") />
49 <#assign text = text?replace("[$SPACE_FULL_NAME$]", "") />
50</#if>
51
52<#if !hasLayout>
53<#switch domainHost>
54 <#case "https://www.digital-bw.de">
55 <#assign domainHost = "http://digital-bw-liferay:8080" />
56 <#break>
57 <#case "https://dev-digitalbw.convotis.com">
58 <#assign domainHost = "http://localhost:8080" />
59 <#break>
60</#switch>
61<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
62<html xmlns="http://www.w3.org/1999/xhtml">
63 <head>
64 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
65 <title>Newsletter</title>
66
67 <!--[if gte mso 7]><xml>
68 <o:OfficeDocumentSettings>
69 <o:AllowPNG/>
70 <o:PixelsPerInch>96</o:PixelsPerInch>
71 </o:OfficeDocumentSettings>
72 </xml><![endif]-->
73
74 <style type="text/css">
75
76 /* roboto-regular - latin */
77 @font-face {
78 font-family: 'Roboto';
79 font-style: normal;
80 font-weight: 400;
81 src: url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.eot'); /* IE9 Compat Modes */
82 src: local('Roboto'), local('Roboto-Regular'),
83 url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
84 url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
85 url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.woff') format('woff'), /* Modern Browsers */
86 url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
87 url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-regular.svg#Roboto') format('svg'); /* Legacy iOS */
88 }
89 /* roboto-700 - latin */
90 @font-face {
91 font-family: 'Roboto';
92 font-style: normal;
93 font-weight: 700;
94 src: url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.eot'); /* IE9 Compat Modes */
95 src: local('Roboto Bold'), local('Roboto-Bold'),
96 url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
97 url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
98 url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.woff') format('woff'), /* Modern Browsers */
99 url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
100 url('${virtualHostname}/o/digital-bw-theme/fonts/roboto-v18-latin/roboto-v18-latin-700.svg#Roboto') format('svg'); /* Legacy iOS */
101 }
102
103 /* montserrat-300 - latin */
104 @font-face {
105 font-family: 'Montserrat';
106 font-style: normal;
107 font-weight: 300;
108 src: url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.eot'); /* IE9 Compat Modes */
109 src: local('Montserrat Light'), local('Montserrat-Light'),
110 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
111 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.woff2') format('woff2'), /* Super Modern Browsers */
112 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.woff') format('woff'), /* Modern Browsers */
113 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.ttf') format('truetype'), /* Safari, Android, iOS */
114 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300.svg#Montserrat') format('svg'), /* Legacy iOS */
115 }
116 /* montserrat-regular - latin */
117 @font-face {
118 font-family: 'Montserrat';
119 font-style: normal;
120 font-weight: 400;
121 src: url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.eot'); /* IE9 Compat Modes */
122 src: local('Montserrat Regular'), local('Montserrat-Regular'),
123 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
124 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */
125 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.woff') format('woff'), /* Modern Browsers */
126 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */
127 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-regular.svg#Montserrat') format('svg'); /* Legacy iOS */
128 }
129 /* montserrat-700 - latin */
130 @font-face {
131 font-family: 'Montserrat';
132 font-style: normal;
133 font-weight: 700;
134 src: url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.eot'); /* IE9 Compat Modes */
135 src: local('Montserrat Bold'), local('Montserrat-Bold'),
136 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
137 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.woff2') format('woff2'), /* Super Modern Browsers */
138 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.woff') format('woff'), /* Modern Browsers */
139 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */
140 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700.svg#Montserrat') format('svg'); /* Legacy iOS */
141 }
142 /* montserrat-700italic - latin */
143 @font-face {
144 font-family: 'Montserrat';
145 font-style: italic;
146 font-weight: 700;
147 src: url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin-700italic.eot'); /* IE9 Compat Modes */
148 src: local('Montserrat Bold Italic'), local('Montserrat-BoldItalic'),
149 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
150 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700italic.woff2') format('woff2'), /* Super Modern Browsers */
151 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700italic.woff') format('woff'), /* Modern Browsers */
152 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700italic.ttf') format('truetype'), /* Safari, Android, iOS */
153 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-700italic.svg#Montserrat') format('svg'); /* Legacy iOS */
154 }
155
156 /* montserrat-italic - latin */
157 @font-face {
158 font-family: 'Montserrat';
159 font-style: italic;
160 font-weight: 400;
161 src: url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin-italic.eot'); /* IE9 Compat Modes */
162 src: local('Montserrat Italic'), local('Montserrat-Italic'),
163 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
164 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-italic.woff2') format('woff2'), /* Super Modern Browsers */
165 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-italic.woff') format('woff'), /* Modern Browsers */
166 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-italic.ttf') format('truetype'), /* Safari, Android, iOS */
167 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-italic.svg#Montserrat') format('svg'); /* Legacy iOS */
168 }
169
170 /* montserrat-300italic - latin */
171 @font-face {
172 font-family: 'Montserrat';
173 font-style: italic;
174 font-weight: 300;
175 src: url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.eot'); /* IE9 Compat Modes */
176 src: local('Montserrat Light Italic'), local('Montserrat-LightItalic'),
177 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
178 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.woff2') format('woff2'), /* Super Modern Browsers */
179 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.woff') format('woff'), /* Modern Browsers */
180 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.ttf') format('truetype'), /* Safari, Android, iOS */
181 url('${virtualHostname}/o/digital-bw-theme/fonts/montserrat-v12-latin/montserrat-v12-latin-300italic.svg#Montserrat') format('svg'); /* Legacy iOS */
182 }
183
184
185 h1, h2, h3, h4, h5, h6{
186 font-family: 'Montserrat', Helvetica, Arial, sans-serif;
187 }
188 body {
189 margin:0;
190 padding:0;
191 -webkit-text-size-adjust:none;
192 -ms-text-size-adjust:none;
193
194 font-family: 'Roboto', Helvetica, Arial, sans-serif;
195 }
196
197 a, a:hover, a:focus, a:active {
198 color: #202240;
199 }
200 </style>
201 <!--[if mso]>
202 <style type="text/css">
203 .fallback-font {
204 font-family: Helvetica, Arial, sans-serif;
205 }
206 </style>
207 <![endif]-->
208 </head>
209 <body bgcolor="#454764" style="background-color: #454764" yahoo="fix">
210</#if>
211 <table border="0" cellpadding="0" cellspacing="0" height="100%" width="100%" id="bodytable"
212 style="width: 100%; height: 100%; margin: 0px; padding: 0px; min-width: 320px;font-family: 'Roboto', Helvetica, Arial, sans-serif; border-collapse: collapse">
213 <tr>
214 <td align="center" bgcolor="#454764" style="background-color: #454764; vertical-align: top" valign="top">
215 <br/>
216
217 <center>
218 <table width="654" cellpadding="0" bgcolor="#FFFFFF" style="background-color: #FFFFFF;" cellspacing="0" border="0">
219 <!-- PREHEADER START -->
220 <tr class="newsletter-web-version">
221 <td style="padding: 10px;" align="right">
222 <div style="font-size: 12px; padding: 10px; font-style: normal; font-weight: normal; text-align: right">
223 <a href="${getCampaignLink(viewURL)}" target="_blank"
224 style="font-size: 12px; color: #202240; font-style: normal; font-weight: normal; text-decoration: underline">
225 <span class="fallback-font" style="font-size: 14px; color: #202240; font-style: normal; font-weight: normal; text-decoration: underline; font-family: 'Roboto', Helvetica, Arial, sans-serif !important;">Besuchen Sie hier die Webversion ></span>
226 </a>
227 </div>
228 </td>
229 </tr>
230 <tr>
231 <td> </td>
232 </tr>
233 <!-- PREHEADER END -->
234 <!-- HEADER START -->
235 <tr>
236 <td style="padding: 10px" align="center">
237 <a href="${getCampaignLink(virtualHostname)}">
238 <img alt="Digital BW Logo"
239 src="${domainHost}/o/digital-bw-theme/images/logos/DigitalBW_LOGO.png"
240 style="height: auto;"
241 width="240"/>
242 </a>
243 </td>
244 </tr>
245 <tr>
246 <td class="fallback-font" style="padding-top: 10px; padding-bottom: 24px; text-align: center; font-size: 28px; color: #202240; font-family: 'Montserrat', Helvetica, Arial, sans-serif !important; font-weight: bold;">
247 ${journalArticle.getTitle(locale)}
248 </td>
249 </tr>
250 <tr>
251 <td> </td>
252 </tr>
253 <!-- HEADER END -->
254 <!-- WELCOME TEXT START -->
255 <tr>
256 <td class="fallback-font" style="padding: 10px; font-size: 22px; color: #202240; font-family: 'Roboto', Helvetica, Arial, sans-serif !important;">
257 <center>
258 ${intro}
259 </center>
260 </td>
261 </tr>
262 <tr>
263 <td class="fallback-font" style="padding: 10px; font-size: 14px; line-height: 140%; color: #202240;font-family: 'Roboto', Helvetica, Arial, sans-serif !important;">
264 ${text}
265 </td>
266 </tr>
267 <!-- WELCOME TEXT END -->
268 </table>
269 </center>
270 </td>
271 </tr>
272
273 <tr>
274 <td align="center" bgcolor="#454764" style="background-color: #454764; vertical-align: top" valign="top">
275 <center>
276 <table width="654" cellpadding="0" bgcolor="#454764" style="background-color: #454764;" cellspacing="0" border="0">
277 <tr>
278 <td> </td>
279 </tr>
280 </table>
281 </center>
282 </td>
283 </tr>
284
285 <tr>
286 <td align="center" bgcolor="#454764" style="background-color: #454764; vertical-align: top" valign="top">
287 <center>
288 <table width="654" cellpadding="0" bgcolor="#FFFFFF" style="background-color: #FFFFFF;" cellspacing="0" border="0">
289
290 <!-- NEWS TWO-COLUMN BLOCK START -->
291 <#if news.siblings?has_content>
292 <tr>
293 <td class="fallback-font" style="text-transform:uppercase; font-size: 24px; padding-top: 10px; padding-bottom: 20px; padding-left: 12px; color: #202240; font-family: 'Montserrat', Helvetica, Arial, sans-serif !important; font-weight: bold;">
294 <#if headlineNews?has_content>
295 ${headlineNews}
296 <#else>
297 TOP NEWS
298 </#if>
299 </td>
300 </tr>
301 <tr>
302 <td>
303 <table width="650" cellpadding="10" bgcolor="#FFFFFF" style="background-color: #FFFFFF; color: #202240" cellspacing="0" border="0">
304 <#list news.siblings as entry>
305 <#assign
306 entryInfo = entry.data?eval
307 entryClassPK = getterUtil.getLong(entryInfo.classPK)
308 />
309 <#if entry?counter == 1>
310 <tr>
311 <#assign readMoreRow = "" />
312 </#if>
313 <@showNews entryClassPK entry?counter/>
314 <#assign moreLink><@showReadMoreLink entryClassPK "Gesamte News lesen" /></#assign>
315 <#assign readMoreRow = readMoreRow + moreLink />
316 <#if ( (entry?counter > 1) && (entry?counter % 2 == 0) ) || (! entry?has_next)>
317 </tr>
318 <tr>${readMoreRow}</tr>
319 <#if entry?has_next>
320 <tr>
321 <#assign readMoreRow = "" />
322 </#if>
323 </#if>
324 </#list>
325
326 <!-- MORE NEWS LINK -->
327 <tr>
328 <td></td>
329 <td class="cell" align="right" style="width: 50%; padding-right: 10px; padding-top: 10px;text-align: right;" width="50%" valign="top">
330 <@button link='${getCampaignLink(virtualHostname + "/news")}' text='WEITERE NEWS →' />
331 </td>
332 </tr>
333 </table>
334 </td>
335 </tr>
336 </#if>
337 <!-- NEWS TWO-COLUMN BLOCK END -->
338
339 <@separator />
340
341 <!-- EVENTS TWO-COLUMN BLOCK START -->
342 <#if events.siblings?has_content>
343 <tr>
344 <td class="fallback-font" style="text-transform:uppercase; font-size: 24px; padding-bottom: 20px; padding-left: 12px; color: #202240; font-family: 'Montserrat', Helvetica, Arial, sans-serif !important; font-weight: bold;">
345 <#if headlineEvents?has_content>
346 ${headlineEvents}
347 <#else>
348 EVENTS
349 </#if>
350 </td>
351 </tr>
352 <tr>
353 <td>
354 <table width="650" cellpadding="10" bgcolor="#FFFFFF" style="background-color: #FFFFFF; color: #202240" cellspacing="0" border="0">
355 <#list events.siblings as entry>
356 <#assign
357 entryInfo = entry.data?eval
358 entryClassPK = getterUtil.getLong(entryInfo.classPK)
359 />
360 <#if entry?counter == 1>
361 <tr>
362 <#assign readMoreRow = "" />
363 </#if>
364 <@showEvent entryClassPK entry?counter/>
365 <#assign moreLink><@showReadMoreLink entryClassPK "Eventdetails lesen" /></#assign>
366 <#assign readMoreRow = readMoreRow + moreLink />
367 <#if ( (entry?counter > 1) && (entry?counter % 2 == 0) ) || (! entry?has_next)>
368 </tr>
369 <tr>${readMoreRow}</tr>
370 <#if entry?has_next>
371 <tr>
372 <#assign readMoreRow = "" />
373 </#if>
374 </#if>
375 </#list>
376
377 <!-- MORE EVENTS LINK -->
378 <tr>
379 <td></td>
380 <td class="cell" align="right" style="width: 50%; padding-right: 10px; padding-top: 10px;text-align: right;" width="50%" valign="top">
381 <@button link='${getCampaignLink(virtualHostname + "/events")}' text='WEITERE EVENTS →' />
382 </td>
383 </tr>
384
385 </table>
386 </td>
387 </tr>
388 </#if>
389 <!-- EVENTS TWO-COLUMN BLOCK END -->
390
391 <@separator />
392
393 <!-- VIDEOS TWO-COLUMN BLOCK START -->
394 <#if video.siblings?has_content>
395 <tr>
396 <td class="fallback-font" style="text-transform:uppercase; font-size: 24px; padding-bottom: 20px; padding-left: 12px; color: #202240; font-family: 'Montserrat', Helvetica, Arial, sans-serif !important; font-weight: bold;">
397 <#if headlineVideos?has_content>
398 ${headlineVideos}
399 <#else>
400 VIDEOS
401 </#if>
402 </td>
403 </tr>
404
405 <tr>
406 <td>
407 <table width="650" cellpadding="10" bgcolor="#FFFFFF" style="background-color: #FFFFFF; color: #202240" cellspacing="0" border="0">
408 <#list video.siblings as entry>
409 <#assign
410 entryInfo = entry.data?eval
411 entryClassPK = getterUtil.getLong(entryInfo.classPK)
412 />
413
414 <#if entry?counter == 1>
415 <tr>
416 <#assign readMoreRow = "" />
417 </#if>
418 <@showVideo entryClassPK entry?counter/>
419 <#assign moreLink><@showReadMoreLink entryClassPK "Video anschauen" /></#assign>
420 <#assign readMoreRow = readMoreRow + moreLink />
421 <#if ( (entry?counter > 1) && (entry?counter % 2 == 0) ) || (! entry?has_next)>
422 </tr>
423 <tr>${readMoreRow}</tr>
424 <#if entry?has_next>
425 <tr>
426 <#assign readMoreRow = "" />
427 </#if>
428 </#if>
429 </#list>
430
431 <!-- MORE VIDEOS LINK -->
432 <tr>
433 <td></td>
434 <td class="cell" align="right" style="width: 50%; padding-right: 10px; padding-top: 10px;text-align: right;" width="50%" valign="top">
435 <@button link='${getCampaignLink(virtualHostname + "/videos")}' text='WEITERE VIDEOS →' />
436 </td>
437 </tr>
438
439 </table>
440 </td>
441 </tr>
442 </#if>
443 <!-- VIDEOS TWO-COLUMN BLOCK END -->
444
445 <tr>
446 <td> </td>
447 </tr>
448 <tr>
449 <td> </td>
450 </tr>
451
452 </table>
453
454 <table width="654" cellpadding="0" bgcolor="#202240" style="background-color: #202240;" cellspacing="0" border="0">
455
456 <!-- POSTFOOTER START -->
457 <tr>
458 <td>
459 <table width="650" cellpadding="10" bgcolor="#202240" style="background-color: #202240; color: white" cellspacing="0" border="0">
460 <tr>
461 <td class="cell" style="width: 50%; vertical-align: top; padding: 10px" width="50%" valign="top">
462 <img src="${domainHost}/o/digital-bw-theme/images/icons/Newsletter/20171024_DigitalBW_LOGO_RGB_RZ.png" alt="digital@bw" height="60" width="180"/>
463 </td>
464 <td></td>
465 </tr>
466 <tr>
467 <td class="cell fallback-font" style="width: 50%; vertical-align: top; padding: 10px;" width="50%" valign="top">
468 <span class="fallback-font" style="color: white; font-size: 16px; font-family:'Roboto', Helvetica, Arial, sans-serif !important; line-height: 140%;">
469 digital@bw ist Ihr Infoportal zur
470 Digitalisierung in Baden-Württemberg.
471 Hier halten wir Sie über die aktuellen
472 Entwicklungen im Land auf dem Laufenden.
473 </span>
474 </td>
475 <td class="cell fallback-font" style="width: 50%; vertical-align:top; padding:10px;" width="50%" valign="top">
476 <span class="fallback-font" style="color: white; font-size: 16px; font-family:'Roboto', Helvetica, Arial, sans-serif !important;">
477 Folgen Sie uns auf:
478 </span>
479 <br/>
480 <br/>
481 <span>
482 <a href="https://www.youtube.com/channel/UCBebTR-Jj4gDUCLlGt4C6cw" style="color: white; text-decoration: none;" target="_blank">
483 <img src="${domainHost}/o/digital-bw-theme/images/icons/Newsletter/yt_icon_rgb.png" alt="digital@bw auf YouTube" height="41" width="58"/>
484 </a>
485
486 <a href="https://www.instagram.com/digitalhilft/" style="color: white; text-decoration: none;" target="_blank">
487 <img src="${domainHost}/o/digital-bw-theme/images/icons/Newsletter/Instagram_AppIcon_Aug2017.png" alt="digital@bw auf Instagram" height="41" width="41"/>
488 </a>
489 </span>
490 <br/>
491 <br/>
492 <span>
493 <a href="${getCampaignLink(virtualHostname + "/kontakt")}"
494 style="font-size: 12px; color: #2181A5; font-weight: normal; font-style: normal; text-decoration: underline">
495 <span class="fallback-font" style="font-size: 16px; color: white; font-weight: normal; font-style: normal; text-decoration: underline;font-family:'Roboto', Helvetica, Arial, sans-serif !important; line-height: 140%;">
496 Kontaktieren Sie uns >
497 </span>
498 </a>
499 </span>
500 <br/>
501 <br/>
502 <span class="newsletter-web-version">
503 <a href="${getCampaignLink("[$UNSUBSCRIBE_URL$]")}"
504 style="font-size: 12px; color: #2181A5; font-weight: normal; font-style: normal; text-decoration: underline">
505 <span class="fallback-font" style="font-size: 12px; color: white; font-weight: normal; font-style: normal; text-decoration: underline;font-family:'Roboto', Helvetica, Arial, sans-serif !important; line-height: 140%;">
506 Newsletter abbestellen >
507 </span>
508 </a>
509 </span>
510 </td>
511 </tr>
512 </table>
513 </td>
514 </tr>
515 </table>
516 </center>
517 </td>
518 </tr>
519 <tr>
520 <td align="center" bgcolor="#454764" style="background-color: #454764; vertical-align: top" valign="top"> </td>
521 </tr>
522 <tr>
523 <td align="center" bgcolor="#454764" style="background-color: #454764; vertical-align: top" valign="top">
524 <table width="654" cellpadding="10" bgcolor="#454764" style="background-color: #454764; color: #C9CCD3" cellspacing="0" border="0">
525 <td align="left" width="100%" valign="top">
526 <span class="fallback-font" style="font-size: 10px; color: #C9CCD3; font-weight: normal; font-style: normal; font-family:'Roboto', Helvetica, Arial, sans-serif !important;">Bildnachweise:
527 <#list copyrights as copyright>
528 ${copyright}<#if copyright?has_next>, </#if>
529 </#list>
530 </span>
531 </td>
532 </table>
533 </td>
534 </tr>
535 <tr>
536 <td align="center" bgcolor="#454764" style="background-color: #454764; vertical-align: top" valign="top"> </td>
537 </tr>
538 <tr class="newsletter-web-version">
539 <td align="center" bgcolor="#454764" style="background-color: #454764; vertical-align: top" valign="top">
540 <table width="654" cellpadding="10" bgcolor="#454764" style="background-color: #454764; color: #C9CCD3" cellspacing="0" border="0">
541 <td align="left" width="70%" valign="top">
542 <span class="fallback-font" style="font-size: 10px; color: #C9CCD3; font-weight: normal; font-style: normal; font-family:'Roboto', Helvetica, Arial, sans-serif !important;">© 2022 Ministerium des Inneren, für Digitalisierung und Kommunen Baden-Württemberg</span>
543 </td>
544 <td align="right" width="30%" valign="top">
545 <a href="${getCampaignLink(virtualHostname + "/impressum")}" class="fallback-font" style="font-size: 10px; color: #C9CCD3; font-weight: normal; font-style: normal; text-decoration: underline;font-family:'Roboto', Helvetica, Arial, sans-serif !important;">Impressum</a>
546 <span style="font-size: 8px; color: #C9CCD3; font-weight: normal; font-style: normal; text-decoration: underline;font-family:'Roboto', Helvetica, Arial, sans-serif;">|</span>
547 <a href="${getCampaignLink(virtualHostname + "/datenschutz")}" class="fallback-font" style="font-size: 10px; color: #C9CCD3; font-weight: normal; font-style: normal; text-decoration: underline;font-family:'Roboto', Helvetica, Arial, sans-serif !important;">Datenschutz</a>
548 </td>
549 </table>
550 </td>
551 </tr>
552 </table>
553<#if !hasLayout>
554 </body>
555</html>
556</#if>
557
558<#macro showReadMoreLink classPK altText widthPercentage="50%" widthAbsolute="305">
559 <#assign
560 article = journalArticleLocalService.fetchLatestArticle(classPK)
561 viewURL = getViewURL(article)
562 />
563 <td class="cell" style="width: ${widthPercentage}; vertical-align: top; padding: 7.5pt; background-color: #FFFFFF" width="${widthAbsolute}" valign="top" align="right">
564 <a href="${getCampaignLink(viewURL)}" style="display: block; text-decoration: none;">
565 <img src="${domainHost}/o/digital-bw-theme/images/icons/Newsletter/pfeil.png"
566 alt="${altText}" width="44" height="44"/>
567 </a>
568 </td>
569</#macro>
570
571<#macro showNews classPK counter>
572 <#assign
573 article = journalArticleLocalService.fetchLatestArticle(classPK)
574 assetCategories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", classPK)
575 newsContent = article.content
576 docXml = saxReaderUtil.read(newsContent)
577 displayedDate = dateUtil.getDate(article.getDisplayDate(), "dd.MM.yyyy", locale)
578 viewURL = getViewURL(article)
579 viewURL = getCampaignLink(viewURL)
580 image = docXml.valueOf("//dynamic-element[@name='imageBigpicture']/dynamic-content/text()")
581 youtubeurl = docXml.valueOf("//dynamic-element[@name='youtubeurlBigpicture']/dynamic-content/text()")
582 copyrights = copyrights + [ getCopyright(image) ]
583 image = httpUtil.addParameter(image, "imageThumbnail", 1)
584 />
585 <#if counter % 2 = 0>
586 <#assign cellStyle = "width: 50%; vertical-align: top; padding: 10px 15px 10px 7.5px" />
587 <#else>
588 <#assign cellStyle = "width: 50%; vertical-align: top; padding: 10px 7.5px 10px 15px" />
589 </#if>
590 <td class="cell" style="${cellStyle}" width="305" valign="top">
591 <table border="0" cellpadding="0" cellspacing="0">
592 <tr>
593 <td style="background-color: #FFFFFF;">
594 <a href="${viewURL}" style="text-decoration: none;">
595 <img alt="${article.getTitle(locale)}"
596 src="${domainHost}${image}"
597 style="display: block; height: auto; width: 100%"
598 width="305" />
599 </a>
600 </td>
601 </tr>
602
603 <tr>
604 <td style="background-color: #FFFFFF; padding-top: 4px;">
605 <div class="fallback-font" style="font-size: 12px; font-style: normal; font-weight: normal; text-align: left; font-family:'Montserrat', Helvetica, Arial, sans-serif !important; line-height: 140%;">
606 ${displayedDate}
607 </div>
608 </td>
609 </tr>
610
611 <tr>
612 <td style="background-color: #FFFFFF; padding-top: 10px">
613 <div class="header-s fallback-font"
614 style="font-size: 18px; color: #202240; font-family: 'Montserrat', Helvetica, Arial, sans-serif !important; font-weight: bold;">
615 <a class="fallback-font" href="${viewURL}" style="text-decoration: none; font-size: 18px; color: #202240; font-family: 'Montserrat', Helvetica, Arial, sans-serif !important; font-weight: bold;">${article.getTitle(locale)}</a>
616 </div>
617 </td>
618 </tr>
619 <#if article.description?has_content>
620 <tr>
621 <td style="background-color: #FFFFFF; padding-top: 10px">
622 <div class="fallback-font" style="font-size: 14px; font-style: normal; font-weight: normal; text-align: left; font-family:'Roboto', Helvetica, Arial, sans-serif !important; line-height: 140%;">
623 <#assign
624 description = article.getDescription(locale)
625 />
626 ${description}
627 </div>
628 </td>
629 </tr>
630 </#if>
631 </table>
632 </td>
633</#macro>
634
635<#macro showEvent classPK counter>
636 <#assign
637 article = journalArticleLocalService.fetchLatestArticle(classPK)
638 assetCategories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", classPK)
639 newsContent = article.content
640 docXml = saxReaderUtil.read(newsContent)
641 viewURL = getViewURL(article)
642 viewURL = getCampaignLink(viewURL)
643 image = docXml.valueOf("//dynamic-element[@name='image']/dynamic-content/text()")
644 copyrights = copyrights + [ getCopyright(image) ]
645 startdate = docXml.valueOf("//dynamic-element[@name='startdate']/dynamic-content/text()")
646 startDateObj = dateUtil.parseDate("yyyy-MM-dd", startdate, locale)
647 city = ""
648 image = httpUtil.addParameter(image, "imageThumbnail", 1)
649 />
650 <#if counter % 2 = 0>
651 <#assign cellStyle = "width: 50%; vertical-align: top; padding: 10px 15px 10px 7.5px" />
652 <#else>
653 <#assign cellStyle = "width: 50%; vertical-align: top; padding: 10px 7.5px 10px 15px" />
654 </#if>
655 <#list assetCategories as assetCategory>
656 <#if assetVocabularyLocalService.fetchAssetVocabulary(assetCategory.vocabularyId)??>
657 <#if ("Ort" == assetVocabularyLocalService.fetchAssetVocabulary(assetCategory.vocabularyId).name)>
658 <#assign city = assetCategory.getTitle(locale) />
659 </#if>
660 </#if>
661 </#list>
662 <td class="cell" style="${cellStyle}" width="305" valign="top">
663 <table border="0" cellpadding="0" cellspacing="0">
664 <tr>
665 <td style="background-color: #FFFFFF;">
666 <a href="${viewURL}" style="text-decoration: none;">
667 <img alt="${article.getTitle(locale)}"
668 src="${domainHost}${image}"
669 style="display: block; height: auto; width: 100%"
670 width="305" />
671 </a>
672 </td>
673 </tr>
674
675 <tr>
676 <td style="background-color: #FFFFFF; padding-top: 4px;">
677 <div class="fallback-font" style="font-size: 12px; font-style: normal; font-weight: normal; text-align: left; font-family:'Montserrat', Helvetica, Arial, sans-serif !important; line-height: 140%;">
678 ${dateFormat.format(startDateObj)}<#if city?? && city?has_content>, ${city}</#if>
679 </div>
680 </td>
681 </tr>
682
683 <tr>
684 <td style="background-color: #FFFFFF; padding-top: 10px">
685 <div class="header-s fallback-font"
686 style="font-size: 18px; color: #202240; font-family: 'Montserrat', Helvetica, Arial, sans-serif !important; font-weight: bold;">
687 <a class="fallback-font" href="${viewURL}" style="text-decoration: none; font-size: 18px; color: #202240; font-family: 'Montserrat', Helvetica, Arial, sans-serif !important; font-weight: bold;">${article.getTitle(locale)}</a>
688 </div>
689 </td>
690 </tr>
691 <#if article.description?has_content>
692 <tr>
693 <td style="background-color: #FFFFFF; padding-top: 10px">
694 <div class="fallback-font" style="font-size: 14px; font-style: normal; font-weight: normal; text-align: left; font-family:'Roboto', Helvetica, Arial, sans-serif !important; line-height: 140%;">
695 <#assign
696 description = article.getDescription(locale)
697 />
698 ${description}
699 </div>
700 </td>
701 </tr>
702 </#if>
703 </table>
704 </td>
705</#macro>
706
707<#macro showVideo classPK counter>
708 <#assign
709 article = journalArticleLocalService.fetchLatestArticle(classPK)
710 assetCategories = assetCategoryLocalService.getCategories("com.liferay.journal.model.JournalArticle", classPK)
711 newsContent = article.content
712 docXml = saxReaderUtil.read(newsContent)
713 description = docXml.valueOf("//dynamic-element[@name='Beschreibung']/dynamic-content/text()")
714 displayedDate = dateUtil.getDate(article.getDisplayDate(), "dd.MM.yyyy", locale)
715 viewURL = getViewURL(article)
716 viewURL = getCampaignLink(viewURL)
717 image = docXml.valueOf("//dynamic-element[@name='imageBigpicture']/dynamic-content/text()")
718 youtubeurl = docXml.valueOf("//dynamic-element[@name='youtubeurlBigpicture']/dynamic-content/text()")
719 entryTitle = docXml.valueOf("//dynamic-element[@name='Titel']/dynamic-content/text()")
720 />
721 <#assign imageURL = "" />
722 <#if image?has_content>
723 <#assign
724 imageURL = image
725 imageURL = httpUtil.addParameter(imageURL, "imageThumbnail", 1)
726 imageURL = domainHost + imageURL
727 />
728 <#elseif youtubeurl?has_content>
729 <#assign youtubeId = getYoutubeId(youtubeurl) />
730 <#assign imageURL = "//i.ytimg.com/vi/${youtubeId}/mqdefault.jpg" />
731 </#if>
732 <#assign
733 copyrights = copyrights + [ getCopyright(imageURL) ]
734 />
735 <#if counter % 2 = 0>
736 <#assign cellStyle = "width: 50%; vertical-align: top; padding: 10px 15px 10px 7.5px" />
737 <#else>
738 <#assign cellStyle = "width: 50%; vertical-align: top; padding: 10px 7.5px 10px 15px" />
739 </#if>
740 <td class="cell" style="${cellStyle}" width="305" valign="top">
741 <table border="0" cellpadding="0" cellspacing="0">
742 <tr>
743 <td style="background-color: #FFFFFF;">
744 <a href="${viewURL}" style="text-decoration: none;">
745 <img alt="${article.getTitle(locale)}"
746 src="${imageURL}"
747 style="display: block; height: auto; width: 100%"
748 width="305" />
749 </a>
750 </td>
751 </tr>
752
753 <tr>
754 <td style="background-color: #FFFFFF; padding-top: 4px;">
755 <div class="fallback-font" style="font-size: 12px; font-style: normal; font-weight: normal; text-align: left; font-family:'Montserrat', Helvetica, Arial, sans-serif !important; line-height: 140%;">
756 ${displayedDate}
757 </div>
758 </td>
759 </tr>
760
761 <tr>
762 <td style="background-color: #FFFFFF; padding-top: 10px">
763 <div class="header-s fallback-font"
764 style="font-size: 18px; color: #202240; font-family: 'Montserrat', Helvetica, Arial, sans-serif !important; font-weight: bold;">
765 <a class="fallback-font" href="${viewURL}" style="text-decoration: none; font-size: 18px; color: #202240; font-family: 'Montserrat', Helvetica, Arial, sans-serif !important; font-weight: bold;">${entryTitle}</a>
766 </div>
767 </td>
768 </tr>
769 <#if description?has_content>
770 <tr>
771 <td style="background-color: #FFFFFF; padding-top: 10px">
772 <div class="fallback-font" style="font-size: 14px; font-style: normal; font-weight: normal; text-align: left; font-family:'Roboto', Helvetica, Arial, sans-serif !important; line-height: 140%;">
773 ${description}
774 </div>
775 </td>
776 </tr>
777 </#if>
778 </table>
779 </td>
780</#macro>
781
782<#macro separator>
783 <!-- SEPARATOR START -->
784 <tr>
785 <td>
786 <table border="0" cellpadding="0" cellspacing="0" style="width: 100% !important;" width="100%">
787 <tr><td> </td></tr>
788 <tr>
789 <td style="font-size: 4px; background-color: #ffe100;">
790
791 </td>
792 </tr>
793 <tr><td> </td></tr>
794 </table>
795 </td>
796 </tr>
797 <!-- SEPARATOR END -->
798</#macro>
799
800<#macro button link text>
801 <!--[if mso]>
802 <v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="${link}" style="height:40px;v-text-anchor:middle;width:220px;" arcsize="35px" stroke="f" fillcolor="#454764">
803 <w:anchorlock/>
804 <center style="color:#ffffff; font-size: 16px; font-style: normal; font-weight: bold; font-family:Helvetica, Arial, sans-serif; line-height: 140%;">
805 ${text}
806 </center>
807 </v:roundrect>
808 <![endif]-->
809 <!--[if !mso]> <!-->
810 <table align="right" border="0" cellpadding="0" cellspacing="0" style="width: 220px; text-align: center; margin-left: auto; margin-right: auto" width="220">
811 <tr>
812 <td align="center" bgcolor="#454764" style="background-color: #454764; padding: 10px; border-radius: 35px; -webkit-border-radius: 35px; -moz-border-radius: 35px">
813 <a href="${link}" style="text-align: center; text-decoration: none;">
814 <span class="fallback-font" style="color:#ffffff; font-size: 16px; font-style: normal; font-weight: bold; font-family:'Montserrat', Helvetica, Arial, sans-serif !important; line-height: 140%;">
815 ${text}
816 </span>
817 </a>
818 </td>
819 </tr>
820 </table>
821 <!-- <![endif]-->
822</#macro>
823
824<#function getViewURL journalArticle>
825 <#assign
826 webServerProtocol = prefsPropsUtil.getString("web.server.protocol")!""
827 webServerProtocol = webServerProtocol?lower_case
828 isSecure = ("https" == webServerProtocol)
829 group = groupLocalService.getGroup(journalArticle.groupId)
830 virtualHostname = group.publicLayoutSet.virtualHostname!""
831 />
832 <#if !virtualHostname?has_content>
833 <#assign virtualHostname = company.virtualHostname!"" />
834 </#if>
835 <#if virtualHostname?has_content>
836 <#assign
837 portalURL = portal.getPortalURL(virtualHostname, portal.getPortalServerPort(isSecure), isSecure)
838 virtualHostname = portalURL
839 />
840 </#if>
841
842 <#assign
843 viewURL = ""
844 />
845
846 <#if journalArticle.layout?? && journalArticle.layoutUuid?has_content>
847 <#assign
848 viewURL = virtualHostname + "/-/" + journalArticle.urlTitle
849 />
850 </#if>
851 <#return viewURL />
852</#function>
853
854<#function getYoutubeId youtubeUrl>
855 <#assign url = httpUtil.getPath(youtubeUrl) />
856 <#assign url = stringUtil.extractLast(url, '/') />
857 <#return url />
858</#function>
859
860<#function getCampaignLink originalLink>
861 <#if campaign?? && campaign.data?has_content>
862 <#return httpUtil.addParameter(originalLink, "utm_campaign", campaign.data) />
863 <#else>
864 <#return originalLink />
865 </#if>
866</#function>
867
868<#function getCopyright imageUrl>
869 <#assign bildnachweis = "kein Bildnachweis">
870 <#if !imageUrl?starts_with("//i.ytimg.com")>
871 <#assign imageFileUid = stringUtil.extractLast(imageUrl, "/")>
872
873 <#if (stringUtil.extractFirst(imageFileUid, "t")??)>
874 <#assign imageFileUid = stringUtil.extractFirst(imageFileUid, "t")/>
875 <#assign imageFileUid= imageFileUid?substring(0,imageFileUid?length-1)/>
876 </#if>
877
878 <#assign dlimageFileEntryService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService")>
879 <#assign dlimageFileEntryTypeService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryTypeLocalService")>
880 <#assign dlFileVersionService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileVersionLocalService")>
881 <#assign DLAppServiceUtil = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppService")>
882 <#assign Datei = DLAppServiceUtil.getFileEntryByUuidAndGroupId(imageFileUid,groupId)>
883 <#assign imageFileEntry = dlimageFileEntryService.getFileEntryByUuidAndGroupId(Datei.getUuid() , Datei.getGroupId() ) />
884
885 <#assign imageFileEntryTypeId = imageFileEntry.getFileEntryTypeId() />
886
887 <#if imageFileEntryTypeId gt 0 >
888 <#assign imageFileEntryType = dlimageFileEntryTypeService.getDLFileEntryType(imageFileEntryTypeId) />
889 <#assign dlFileVersion = dlFileVersionService.getLatestFileVersion(imageFileEntry.getUserId(), imageFileEntry.getFileEntryId()) />
890 <#assign fieldsMap = imageFileEntry.getDDMFormValuesMap(dlFileVersion.getFileVersionId()) />
891
892 <#list fieldsMap?keys as ddmFormKey>
893
894 <#assign ddmForm = fieldsMap[ddmFormKey]/>
895
896 <#list ddmForm.getDDMFormFieldValues() as formField>
897 <#if formField.getName() == 'Bildnachweis'>
898 <#assign bildnachweis = formField.getValue().getString(locale) />
899 </#if>
900
901 </#list>
902
903 </#list>
904 </#if>
905 </#if>
906 <#return bildnachweis />
907</#function>