Asset-Herausgeber

Fehler bei der Verarbeitung der Vorlage.
Can't convert this string to number: "www.adenauercampus.de"
The blamed expression:
==> urlparts[2]?number [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGDETAIL_CONTENT" at line 854, column 110]
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign linkToDMT = FrontendService.m... [in template "20082418#20082464#WCD_DEBATTENBLOG_BLOGDETAIL_CONTENT" at line 854, column 21]
----
1<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" /> 
2 
3<#-- bezieht sich auf WCS Blog --> 
4<#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") /> 
5<#assign AssetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService") > 
6<#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService") /> 
7<#assign AssetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService") /> 
8<#assign FrontendService = serviceLocator.findService("de.usu.kas.frontend.service.api.FrontendService") /> 
9<#assign VocabularyService = FrontendService.vocabulary /> 
10 
11<#assign articleId = .vars['reserved-article-id'].data /> 
12<#assign articleTitle = .vars['reserved-article-title'].data /> 
13<#assign version = .vars['reserved-article-version'].data?number /> 
14  
15<#assign journalArticle = JournalArticleLocalService.getLatestArticle(groupId, .vars['reserved-article-id'].data) > 
16<#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", journalArticle.getResourcePrimKey()) > 
17<#assign selectedAssetVocabulary = (VocabularyService.fetchAssetVocabulary(assetEntry.getCompanyId(),"THEMA" ))> 
18<#assign vocabularyId = selectedAssetVocabulary.getVocabularyId()/> 
19<#assign categories = getCategoriesForVocabulary(assetEntry, vocabularyId) > 
20<#assign article = JournalArticleLocalService.fetchArticle( articleGroupId, articleId , version ) /> 
21 
22<#assign 
23 jsonString = FrontendService.article.getWebcontent(journalArticle.getResourcePrimKey()) 
24 json = FrontendService.json.parseAsJson(jsonString) 
25/> 
26 
27<#assign content = [getRelatedPublication(json, locale, journalArticle.getResourcePrimKey(), themeDisplay, FrontendService, ['primaryKey', 'title', 'href', 'subtitle', 'description', 'author', 'erscheinungsdatum', 'category', 'image', 'imagetype', 'meta', 'publicationSeriesCategory'])]> 
28 
29 
30<#if requestMap??>  
31 <#assign 
32 renderUrl = requestMap['render-url'] 
33 control_panel = renderUrl?contains('control_panel')  
34
35</#if> 
36  
37<#if control_panel?? && control_panel> 
38 <#if FrontendService.user.isPrivilegedUser(permissionChecker.getUser())> 
39 <pre> 
40 articleId = ${.vars['reserved-article-id'].data} 
41 version = ${.vars['reserved-article-version'].data} 
42 groupId = ${articleGroupId} 
43 structurekey = ${article.getDDMStructureKey()} 
44 </pre> 
45 <pre style="white-space: pre-wrap;"> 
46 ${FrontendService.json.transformToJson( article, true )} 
47 </pre> 
48 </#if> 
49<#else>  
50 <#include "${fullTemplatesPath}/macros/page-modules/PMShare.ftl" /> 
51 <#include "${fullTemplatesPath}/macros/page-modules/PMGalleryScript.ftl" /> 
52 <#include "${fullTemplatesPath}/macros/page-modules/PMPageContent.ftl" /> 
53 <#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" /> 
54  
55  
56 <#-- functions --> 
57 <#function getJournalArticle dataObj > 
58 <#local journalArticle = "" > 
59  
60 <#attempt> 
61 <#local data = dataObj.getData()?eval > 
62 <#local classPK = data.classPK > 
63 <#local className = data.className > 
64 <#local entry = AssetEntryLocalService.getEntry(className, classPK?number)! > 
65  
66 <#if entry??> 
67 <#local assetRenderer = entry.getAssetRenderer() /> 
68 <#local journalArticle = (assetRenderer.getArticle())! /> 
69 </#if> 
70 <#recover> 
71 <#-- catch block --> 
72 </#attempt> 
73  
74 <#return journalArticle > 
75  
76 </#function> 
77  
78 <#function getSaxReaderDocument dataObj > 
79 <#local document = "" > 
80  
81 <#local journalArticle = getJournalArticle(dataObj) > 
82 <#if journalArticle?has_content> 
83 <#local document = (saxReaderUtil.read(journalArticle.getContentByLocale(locale.toString())))!"" /> 
84 </#if> 
85  
86 <#return document > 
87  
88 </#function> 
89  
90  
91 <#function getCategoriesForVocabulary assetEntry vocabularyId > 
92  
93 <#local categories = [] > 
94 <#local assetCategories = (assetEntry.getCategories())![] > 
95  
96 <#list assetCategories as assetCategory> 
97 <#local categoryVocabularyId = assetCategory.getVocabularyId() > 
98  
99 <#if categoryVocabularyId == vocabularyId> 
100 <#local categories = categories + [assetCategory] > 
101 </#if> 
102 </#list> 
103  
104 <#return categories > 
105  
106 </#function> 
107  
108 <#function hasMedia contenttext > 
109 <#return (contenttext.contentmediumDMTKASDEMEDIUM.getData())?has_content > 
110 </#function> 
111  
112 <#function hasMediaGallery contenttext > 
113 <#return (contenttext.contentbilderstreckebilderstrecke.getData())?has_content > 
114 </#function> 
115  
116 <#function isSlider contenttext> 
117 <#if !(contenttext.contentbilderstreckebilderstrecke.bilderstreckeslider)??> 
118 <#return true > 
119 <#else> 
120 <#return getterUtil.getBoolean(contenttext.contentbilderstreckebilderstrecke.bilderstreckeslider.getData())> 
121 </#if> 
122 </#function> 
123  
124 <#function hasQuotes contenttext > 
125 <#return (contenttext.contentzitatWCSKASDEZITAT.getData())?has_content > 
126 </#function> 
127  
128<#macro mediaElement url groupId uuid> 
129 <#if url?contains(".jpg") || url?contains(".jpeg") || url?contains(".png") || url?contains(".gif")> 
130 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', groupId, uuid) /> 
131 <#if linkToDMT?has_content> 
132 <img class="o-media__image" src="${linkToDMT}" /> 
133 <@mediaReeference groupId uuid /> 
134 </#if> 
135 <#elseif url?contains(".mp4") || url?contains(".ogg") > 
136 <video width="100%" height="100%" controls> 
137 <source src="${url}" > 
138 Your browser does not support the video tag. 
139 </video> 
140 <#elseif url?contains(".mp3") > 
141 <audio preload="none" controls> 
142 <source src="${url}"> 
143 Your browser does not support the audio element. 
144 </audio> 
145 </#if> 
146</#macro> 
147  
148<#macro contentMedia contenttext > 
149 <#local url = contenttext.contentmediumDMTKASDEMEDIUM.getData()> 
150 <#local void=FrontendService.debugHelper("WCD_DEBATTENBLOG_BLOGDETAIL_CONTENT", "1:", contenttext.contentmediumDMTKASDEMEDIUM.getData()) /> 
151 <#local void=FrontendService.debugHelper("WCD_DEBATTENBLOG_BLOGDETAIL_CONTENT", "2:", contenttext.contentmediumDMTKASDEMEDIUM.data) /> 
152 <#local mediumData = contenttext.contentmediumDMTKASDEMEDIUM.data?replace('\\/iframe', '/iframe')?eval /> 
153 <#local linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"]) />  
154 <div class="c-image"> 
155 <div class="c-image__item"> 
156 <div class="c-image__image"> 
157 <@mediaElement url mediumData["groupId"]?number mediumData["uuid"]/> 
158 </div> 
159 <#if (contenttext.contentbildunterschrift)?has_content> 
160 <div class="c-image__caption">${contenttext.contentbildunterschrift.getData()}</div> 
161 </#if> 
162 </div> 
163 </div> 
164</#macro> 
165 
166<#macro referenceTitle referenceStructure > 
167 <#attempt> 
168 <#local data = referenceStructure.getData()?eval > 
169 <#local classPK = data.classPK?number > 
170 <#local title = data.title > 
171 <#recover> 
172 </#attempt> 
173 
174 <#if title?has_content> 
175 ${title} 
176 </#if> 
177</#macro> 
178<#macro mediaReeference groupId uuid> 
179 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId?number, uuid, locale)!"" > 
180 
181 <#if mediaObj?has_content && (mediaObj.quelle)?has_content > 
182 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))> 
183 <#if source?has_content> 
184 <span class="o-imagesource">${source}</span> 
185 </#if> 
186 </#if> 
187</#macro> 
188 
189<#macro mediaReeferenceGallery groupId uuid index > 
190  
191 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId?number, uuid, locale)!"" > 
192 
193 <#if mediaObj?has_content && (mediaObj.quelle)?has_content > 
194 <#-- do not! remove wrapping quotes --> 
195 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))> 
196 <#if source?has_content> 
197 <span class="o-imagesource imagesource-${index}">${source}</span> 
198 </#if> 
199 </#if> 
200</#macro> 
201 
202<#if isDPMColorScheme()> 
203 <#-- BEGINN Content macros 
204 ------------------------------------------------------------------------------------------------------------------------> 
205  
206  
207 <#macro contentMediaSlider contenttext > 
208 <#local referenceStructure = contenttext.contentbilderstreckebilderstrecke > 
209 <#local document = getSaxReaderDocument(referenceStructure) > 
210  
211 <#-- entry title --> 
212 <@referenceTitle referenceStructure /> 
213  
214 <#-- get items --> 
215 <#local items = document.selectNodes("//dynamic-element[@name='bildtextzumbild']/dynamic-content") /> 
216  
217 <#-- get items images --> 
218 <#local images = document.selectNodes("//dynamic-element[@name='bildmediumDMTKASDEMEDIUM']/dynamic-content") /> 
219  
220 <#if items?has_content> 
221 <#list items as item> 
222 <#local index = item?index> 
223 <#if images[index]?has_content> 
224 <#local caption = item.getText()> 
225 <#local src = images[index].getText()?eval> 
226 <#assign link = FrontendService.media.getLinkToDMT(FrontendService.media.getDMTJsonObject( src.groupId?number, src.uuid, locale )) />  
227 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',src.groupId?number, src.uuid ) />  
228 <div class="c-image-gallery__item"> 
229 <div style="position: relative; display: inline-block; margin-bottom: -6px;"> 
230 <#if !isDPMColorSchemeNEW()> 
231 <a class="image-viewer-link" href="${link}" title="${caption}"> 
232 </#if> 
233 <#if linkToDMT?has_content> 
234 <#-- KAS_JAVASCRIPT <OverlayImageGallery> --> 
235 <img class="c-image-gallery__image" src="${linkToDMT}" data-src="${linkToDMT}" style="margin:auto;" role="img"> 
236 <@mediaReeferenceGallery src.groupId?number src.uuid index/> 
237 </#if> 
238 <#if !isDPMColorSchemeNEW()> 
239 </a> 
240 </#if> 
241 </div> 
242 <div class="c-image-gallery__text-area"> 
243 <span class="c-image-gallery__text">${caption}</span> 
244 </div> 
245 </div> 
246 </#if> 
247 </#list> 
248 </#if> 
249  
250 </#macro> 
251  
252 <#macro contentMediaGallery contenttext > 
253 <#local referenceStructure = contenttext.contentbilderstreckebilderstrecke > 
254 <#local document = getSaxReaderDocument(referenceStructure) > 
255  
256 <#if document?has_content> 
257 <#-- entry title --> 
258 <#-- <@referenceTitle referenceStructure /> --> 
259  
260 <#-- get items --> 
261  
262 <#local items = document.selectNodes("//dynamic-element[@name='bildtextzumbild']/dynamic-content") /> 
263  
264  
265 <#-- get items images --> 
266 <#local images = document.selectNodes("//dynamic-element[@name='bildmediumDMTKASDEMEDIUM']/dynamic-content") /> 
267  
268  
269 <#if items?has_content> 
270 <div class="c-image c-image--2col"> 
271 <#list items as item> 
272 <#local index = item?index> 
273 <#if images[index]?has_content> 
274 <#local caption = item.getText()> 
275 <#local src = images[index].getText()?eval> 
276 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',src.groupId?number, src.uuid ) /> 
277 <div class="c-image__item"> 
278 <div class="c-image__image"> 
279 <#if linkToDMT?has_content> 
280 <img src="${linkToDMT}" style="margin:auto;"> 
281 <@mediaReeferenceGallery src.groupId?number src.uuid index/> 
282 </#if> 
283 </div> 
284 <div class="c-image__caption">${caption}</div> 
285 </div> 
286 </#if> 
287 </#list> 
288 </div> 
289 </#if> 
290  
291 </#if> 
292 </#macro> 
293  
294 <#macro contentQuotes contenttext > 
295 <#if (contenttext.contentzitatWCSKASDEZITAT)?has_content> 
296 <#local quoteDocument = getSaxReaderDocument(contenttext.contentzitatWCSKASDEZITAT) > 
297 <#if quoteDocument?has_content> 
298  
299 <#local quote = ""> 
300 <#local author = ""> 
301  
302 <#if quoteDocument.selectSingleNode("/root/dynamic-element[@name='zitat']/dynamic-content")??> 
303 <#local node = quoteDocument.selectSingleNode("/root/dynamic-element[@name='zitat']/dynamic-content") /> 
304 <#local nodeText = node.getText() /> 
305 <#if nodeText?has_content > 
306 <#local quote = nodeText> 
307 </#if> 
308 </#if> 
309  
310 <#if quoteDocument.selectSingleNode("/root/dynamic-element[@name='author']/dynamic-content")??> 
311 <#local node = quoteDocument.selectSingleNode("/root/dynamic-element[@name='author']/dynamic-content") /> 
312 <#local nodeText = node.getText() /> 
313 <#if nodeText?has_content > 
314 <#local author = nodeText> 
315 </#if> 
316 </#if> 
317  
318 <#if quote?has_content> 
319 <blockquote> 
320 „${quote}“ 
321 <#if author?has_content> 
322 <p>${author}</p> 
323 </#if> 
324 </blockquote> 
325 </#if> 
326  
327 </#if> 
328 </#if> 
329 </#macro> 
330  
331 <#macro personName document > 
332 <#if document?has_content> 
333 <#local anredetitel = ""> 
334 <#local vorname = ""> 
335 <#local nachname = ""> 
336  
337 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??> 
338 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") /> 
339 <#local nodeText = node.getText() /> 
340 <#if nodeText?has_content > 
341 <#local anredetitel = nodeText > 
342 </#if> 
343 </#if> 
344  
345 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??> 
346 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") /> 
347 <#local nodeText = node.getText() /> 
348 <#if nodeText?has_content > 
349 <#local vorname = nodeText > 
350 </#if> 
351 </#if> 
352  
353 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??> 
354 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") /> 
355 <#local nodeText = node.getText() /> 
356 <#if nodeText?has_content > 
357 <#local nachname = nodeText > 
358 </#if> 
359 </#if> 
360  
361 </#if> 
362  
363 <#if anredetitel?has_content || vorname?has_content || nachname?has_content > 
364 <span class="o-metadata o-metadata--author"> 
365 ${anredetitel} ${vorname} ${nachname} 
366 </span> 
367 </#if> 
368 </#macro> 
369  
370<#macro mediaReference groupId uuid > 
371 <#local mediaObj = FrontendService.media.getDMTJsonObject(groupId, uuid, locale)!"" > 
372 
373 <#if mediaObj?has_content && (mediaObj.quelle)?has_content > 
374 <#local source = mediaObj.quelle?substring(1, (mediaObj.quelle?length - 1))> 
375 <#if source?has_content> 
376 <span class="o-imagesource">${source}</span> 
377 </#if> 
378 </#if> 
379</#macro> 
380  
381  
382 <#-- END Content macros 
383 ------------------------------------------------------------------------------------------------------------------------> 
384  
385 <div class="c-page-intro c-page-intro--blog"> 
386 <div class="o-page-module"> 
387 <div class="c-page-intro__wrapper"> 
388 <#if coverDMTKASDEMEDIUM.getData()?has_content> 
389 <#assign mediumData = coverDMTKASDEMEDIUM.data?eval_json /> 
390 <#assign  
391 dMTJsonObject = FrontendService.media.getDMTJsonObject( mediumData["groupId"]?number, mediumData["uuid"], locale ) 
392 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', mediumData["groupId"]?number, mediumData["uuid"])  
393 /> 
394 <#if dMTJsonObject?has_content && dMTJsonObject.altText?has_content> 
395 <#assign alt = dMTJsonObject.altText?substring(1, dMTJsonObject.altText?length - 1) /> 
396 <#else> 
397 <#assign alt = "" /> 
398 </#if> 
399 <#if linkToDMT?has_content> 
400 <div class="c-page-intro__image dynamic-image" role="img" alt="${alt}" data-src="${linkToDMT}"> 
401 <@mediaReference mediumData["groupId"]?number mediumData["uuid"] /> 
402 </div> 
403 </#if> 
404 </#if> 
405  
406 <#assign title = .vars['reserved-article-title'].data/> 
407 <div class="o-page-headline__wrapper"> 
408  
409 <div class="c-share"> 
410 <div class="c-share__wrapper--aside"> 
411 <div class="c-share c-share--aside c-share--aside-new"> 
412 <ul class="c-share__list"> 
413 <@ShareLink "merkliste" "" content /> 
414 <@ShareLink "print" /> 
415 <@ShareLink "mail" /> 
416 <@ShareLink "share" /> 
417 </ul> 
418 </div> 
419 </div> 
420 <@ShareOverlay /> 
421 </div> 
422  
423 <#if !isDPMColorSchemeNEW()> 
424 <h2 class="o-page-headline">${title}</h2> 
425 </#if> 
426 
427 <#if isDPMColorSchemeNEW()> 
428 <h1 class="o-page-headline">${title}</h1> 
429 </#if> 
430 </div> 
431 
432 <#if isDPMColorSchemeNEW()> 
433 <div class="c-page-subheadline__wrapper"> 
434 </#if> 
435 
436 <#if !isDPMColorSchemeNEW()> 
437 <#if (untertitel.getData())?has_content> 
438 <h2 class="c-page-intro__subheadline">${untertitel.getData()}</h2> 
439 </#if> 
440 </#if> 
441  
442 <div class="c-page-intro__meta"> 
443  
444 <#if autorenWCSKASDEPERSON.getSiblings()?has_content> 
445 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON> 
446 <#if cur_autorenWCSKASDEPERSON.getData()?has_content> 
447 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) > 
448 <#if document?has_content> 
449 <@personName document /> 
450 </#if> 
451 </#if> 
452 </#list> 
453 </#if> 
454  
455 <span class="o-metadata o-metadata--date"> 
456 <#assign date = "" > 
457 <#assign modified_date = (.vars['reserved-article-modified-date'].data)!""> 
458 <#if modified_date?has_content> 
459 <#setting date_format = "dd. MMMM yyyy" /> 
460 <#setting locale = "de_DE" /> 
461 <#assign date = modified_date?date("EEE, d MMM yyyy HH:mm:ss Z")> 
462 </#if> 
463 ${date} 
464 </span> 
465  
466 <#if categories?has_content> 
467 <span class="o-metadata o-metadata--thema"> 
468 <#list categories as category> 
469 <span>${category.getName()}</span> 
470 </#list> 
471 </span> 
472 </#if> 
473 </div> 
474 <#if isDPMColorSchemeNEW()> 
475 <#if (untertitel.getData())?has_content> 
476 <h2 class="c-page-intro__subheadline">${untertitel.getData()}</h2> 
477 </#if> 
478 </#if> 
479 <#if isDPMColorSchemeNEW()> 
480 </div> 
481 </#if> 
482  
483 <#if beschreibung.getData()?has_content> 
484 <p class="c-page-intro__copy">${beschreibung.getData()}</p> 
485 </#if> 
486  
487 </div> 
488 </div> 
489 </div> 
490  
491 <div class="o-page-module c-page-main c-page-main--detail c-page-main--blogdetail"> 
492  
493 <div class="c-page-main__text o-richtext"> 
494  
495 <#if contenttext.getSiblings()?has_content> 
496 <#assign iFrameId = 0 > 
497 <#list contenttext.getSiblings() as cur_contenttext> 
498  
499 <#if hasMedia(cur_contenttext) > 
500 <@contentMedia cur_contenttext /> 
501 </#if> 
502  
503 <#if hasMediaGallery(cur_contenttext) > 
504 <#if isSlider(cur_contenttext)> 
505 <#assign index = cur_contenttext?index> 
506 <div class="c-image-gallery"> 
507 <div class="c-image-gallery__bg" aria-hidden="true"></div> 
508 <#-- KAS_JAVASCRIPT <ImageGallery_Slider> --> 
509 <div class="c-image-gallery__inner" id="bilderstrecke_${index}"> 
510 <@contentMediaSlider cur_contenttext /> 
511 </div> 
512 <@PMGalleryScript index /> 
513 </div> 
514 <#else> 
515 <@contentMediaGallery cur_contenttext /> 
516 </#if> 
517  
518 </#if> 
519  
520 <#if hasIFrame(cur_contenttext) > 
521 <#assign iFrameId = iFrameId + 1 > 
522 <@contentIFrame cur_contenttext iFrameId "blog"/> 
523 </#if> 
524  
525 <#if cur_contenttext.contenttwitter?? && cur_contenttext.contenttwitter.getSiblings()?has_content> 
526 <#list cur_contenttext.contenttwitter.getSiblings() as contenttwitter> 
527 <#assign iFrameId = iFrameId + 1 > 
528 <#assign elementId = iFrameId?string + "blog" > 
529 <#if (contenttwitter.getData())?has_content> 
530 <div id="kas-iframe-${elementId}" class="kas-iframe o-iframe c-twitter__wrapper"> 
531 <#assign 
532 isWhitelisted = FrontendService.media.isUrlWhitelisted(contenttwitter.getData()) 
533 externalContentAllowed = FrontendService.media.isExternalContentAllowed(themeDisplay) 
534  
535 iframeToRender = FrontendService.media.getIframeCodeIfNeeded(contenttwitter.getData(), isWhitelisted, externalContentAllowed) 
536 dsgvoOverlay = FrontendService.media.getDefaultIframeOverlay(locale) 
537
538 <div id="generated-iframe-wrapper-${elementId}" 
539 class="generated-iframe-wrapper o-iframe__generated-wrapper no-border"> 
540 <#if isWhitelisted> 
541 ${iframeToRender} 
542 <#elseif externalContentAllowed> 
543 ${iframeToRender} 
544 <#else> 
545 <#-- Add DSGVO Overlay --> 
546 <div id="iframe-dsgvo-overlay-${elementId}" 
547 class="iframe-dsgvo-overlay-wrapper o-iframe__generated-wrapper--overlay" 
548 onclick="turnOffOverlay_${elementId}()"> 
549 ${dsgvoOverlay} 
550 </div> 
551 <div id="iframe-to-render-${elementId}" class="iframe-to-render-wrapper"> 
552 <#-- iframeToRender goes here --> 
553 </div> 
554  
555 <script> 
556 function turnOffOverlay_${elementId}() { 
557 document.getElementById( 
558 "iframe-dsgvo-overlay-${elementId}").hidden = true; 
559 jQuery('#iframe-to-render-${elementId}').html('${iframeToRender}'); 
560
561 </script> 
562 </#if> 
563 </div> 
564 </div> 
565 </#if> 
566 </#list> 
567 </#if> 
568  
569 <@contentText cur_contenttext /> 
570  
571 <#if hasQuotes(cur_contenttext) > 
572 <@contentQuotes cur_contenttext /> 
573 </#if> 
574  
575 </#list> 
576 </#if> 
577 </div> 
578 </div> 
579  
580 <#if categories?has_content> 
581 <div class="o-page-module"> 
582 <div class="c-tagcloud"> 
583 
584 <#if !isDPMColorSchemeNEW()> 
585 <h4 class="o-page-headline">${languageUtil.get(locale, "themen")}</h4> 
586 </#if> 
587 
588 <#if isDPMColorSchemeNEW()> 
589 <h4 class="o-page-headline">${languageUtil.get(locale, "aktuelle.themen")}</h4> 
590 </#if> 
591  
592 <div class="c-tagcloud__tags"> 
593  
594 <#list categories as category> 
595 <#assign href = FrontendService.category.getAnzeigeseiteToCategory(category, locale, themeDisplay.getScopeGroupId())!"/_404" > 
596 <#assign externalLink = FrontendService.url.isExternalLink(href) /> 
597  
598 <a title="${category.name}" href="${href}" <#if externalLink> target="_blank" rel="noopener noreferrer" </#if> class="c-tag"> 
599 <svg class="c-tag__icon"> 
600 <use xlink:href="${themeDisplay.getPathThemeImages()}/svg_sprite.svg#icon-tag"></use> 
601 </svg> 
602 <span class="c-tag__name">${category.name}</span> 
603 </a> 
604 </#list> 
605  
606 </div> 
607 </div> 
608  
609 </#if> 
610 <#else> 
611 <#-- BEGINN Content macros 
612 ------------------------------------------------------------------------------------------------------------------------> 
613  
614 <#macro contentMediaSlider contenttext > 
615 <#local referenceStructure = contenttext.contentbilderstreckebilderstrecke > 
616 <#local document = getSaxReaderDocument(referenceStructure) > 
617  
618 <#if document?has_content> 
619 <#-- entry title --> 
620 <@referenceTitle referenceStructure /> 
621  
622 <#-- get items --> 
623 <#if document.selectNodes("/root/dynamic-element[@name='bildtextzumbild']/dynamic-content")??> 
624 <#local items = document.selectNodes("/root/dynamic-element[@name='bildtextzumbild']/dynamic-content") /> 
625 </#if> 
626  
627 <#-- get items images --> 
628 <#if document.selectNodes("/root/dynamic-element[@name='bildtextzumbild']/dynamic-element[@name='bildmediumDMTKASDEMEDIUM']/dynamic-content")??> 
629 <#local images = document.selectNodes("/root/dynamic-element[@name='bildtextzumbild']/dynamic-element[@name='bildmediumDMTKASDEMEDIUM']/dynamic-content") /> 
630 </#if> 
631  
632 <#if items?has_content> 
633 <#list items as item> 
634 <#local index = item?index> 
635 <#if images[index]?has_content> 
636 <#local caption = item.getText()> 
637 <#local src = images[index].getText()?eval> 
638 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution', src.groupId?number, src.uuid) /> 
639 <div class="c-image-gallery__item"> 
640 <div style="position: relative; display: inline-block; margin-bottom: -6px;"> 
641 <#if !isDPMColorSchemeNEW()> 
642 <a class="image-viewer-link" href="${src}" title="${caption}"> 
643 </#if> 
644 <#if linkToDMT?has_content> 
645 <#-- KAS_JAVASCRIPT <OverlayImageGallery> --> 
646 <img class="c-image-gallery__image" src="${linkToDMT}" data-src="${linkToDMT}" style="margin:auto;" role="img"> 
647 <@mediaReeferenceGallery src.groupId?number src.uuid index/> 
648 </#if> 
649 <#if !isDPMColorSchemeNEW()> 
650 </a> 
651 </#if> 
652 </div> 
653 <div class="c-image-gallery__text-area"> 
654 <span class="c-image-gallery__text">${caption}</span> 
655 </div> 
656 </div> 
657 </#if> 
658 </#list> 
659 </#if> 
660  
661 </#if> 
662 </#macro> 
663  
664 <#macro contentMediaGallery contenttext > 
665 <#local referenceStructure = contenttext.contentbilderstreckebilderstrecke > 
666 <#local document = getSaxReaderDocument(referenceStructure) > 
667  
668 <#if document?has_content> 
669 <#-- entry title --> 
670 <#-- <@referenceTitle referenceStructure /> --> 
671  
672 <#-- get items --> 
673 <#if document.selectNodes("/root/dynamic-element[@name='bildtextzumbild']/dynamic-content")??> 
674 <#local items = document.selectNodes("/root/dynamic-element[@name='bildtextzumbild']/dynamic-content") /> 
675 </#if> 
676  
677 <#-- get items images --> 
678 <#if document.selectNodes("/root/dynamic-element[@name='bildtextzumbild']/dynamic-element[@name='bildmediumDMTKASDEMEDIUM']/dynamic-content")??> 
679 <#local images = document.selectNodes("/root/dynamic-element[@name='bildtextzumbild']/dynamic-element[@name='bildmediumDMTKASDEMEDIUM']/dynamic-content") /> 
680 </#if> 
681  
682 <#if items?has_content> 
683 <div class="c-image c-image--2col"> 
684 <#list items as item> 
685 <#local index = item?index> 
686 <#if images[index]?has_content> 
687 <#local caption = item.getText()> 
688 <#local src = images[index].getText()?eval> 
689 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',src.groupId?number, src.uuid ) /> 
690 </#if> 
691 <div class="c-image__item"> 
692 <div class="c-image__image"> 
693 <#if linkToDMT?has_content> 
694 <img src="${linkToDMT}" style="margin:auto;"> 
695 <@mediaReeference src /> 
696 </#if> 
697 </div> 
698 <div class="c-image__caption">${caption}</div> 
699 </div> 
700 </#list> 
701 </div> 
702 </#if> 
703  
704 </#if> 
705 </#macro> 
706  
707 <#macro contentQuotes contenttext > 
708 <#if (contenttext.contentzitatWCSKASDEZITAT)?has_content> 
709 <#local quoteDocument = getSaxReaderDocument(contenttext.contentzitatWCSKASDEZITAT) > 
710 <#if quoteDocument?has_content> 
711  
712 <#local quote = ""> 
713 <#local author = ""> 
714  
715 <#if quoteDocument.selectSingleNode("/root/dynamic-element[@name='zitat']/dynamic-content")??> 
716 <#local node = quoteDocument.selectSingleNode("/root/dynamic-element[@name='zitat']/dynamic-content") /> 
717 <#local nodeText = node.getText() /> 
718 <#if nodeText?has_content > 
719 <#local quote = nodeText> 
720 </#if> 
721 </#if> 
722  
723 <#if quoteDocument.selectSingleNode("/root/dynamic-element[@name='author']/dynamic-content")??> 
724 <#local node = quoteDocument.selectSingleNode("/root/dynamic-element[@name='author']/dynamic-content") /> 
725 <#local nodeText = node.getText() /> 
726 <#if nodeText?has_content > 
727 <#local author = nodeText> 
728 </#if> 
729 </#if> 
730  
731 <#if quote?has_content> 
732 <blockquote> 
733 „${quote}“ 
734 <#if author?has_content> 
735 <p>${author}</p> 
736 </#if> 
737 </blockquote> 
738 </#if> 
739  
740 </#if> 
741 </#if> 
742 </#macro> 
743  
744 <#macro personName document > 
745 <#if document?has_content> 
746 <#local anredetitel = ""> 
747 <#local vorname = ""> 
748 <#local nachname = ""> 
749  
750 <#if document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content")??> 
751 <#local node = document.selectSingleNode("/root/dynamic-element[@name='anredetitel']/dynamic-content") /> 
752 <#local nodeText = node.getText() /> 
753 <#if nodeText?has_content > 
754 <#local anredetitel = nodeText > 
755 </#if> 
756 </#if> 
757  
758 <#if document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content")??> 
759 <#local node = document.selectSingleNode("/root/dynamic-element[@name='vorname']/dynamic-content") /> 
760 <#local nodeText = node.getText() /> 
761 <#if nodeText?has_content > 
762 <#local vorname = nodeText > 
763 </#if> 
764 </#if> 
765  
766 <#if document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content")??> 
767 <#local node = document.selectSingleNode("/root/dynamic-element[@name='nachname']/dynamic-content") /> 
768 <#local nodeText = node.getText() /> 
769 <#if nodeText?has_content > 
770 <#local nachname = nodeText > 
771 </#if> 
772 </#if> 
773  
774 <#if document.selectSingleNode("/root/dynamic-element[@name='portraitDMTKASDEMEDIUM']/dynamic-content")??> 
775 <#local node = document.selectSingleNode("/root/dynamic-element[@name='portraitDMTKASDEMEDIUM']/dynamic-content") /> 
776 <#local portraitDMTKASDEMEDIUM = node.getText() /> 
777 <#if portraitDMTKASDEMEDIUM?has_content > 
778 <#assign json = FrontendService.json.parseAsJson(portraitDMTKASDEMEDIUM) > 
779 <#assign mediaData = getRelatedMediaObject(json, themeDisplay, locale, FrontendService, "hd-resolution") > 
780 </#if> 
781 </#if> 
782  
783 </#if> 
784 <#if anredetitel?has_content || vorname?has_content || nachname?has_content > 
785 <#if mediaData?has_content && mediaData.url?has_content> 
786 <div class="ac-themen-author-icon"> 
787 <img class="mr-4" src="${mediaData.url}" /> 
788 </div> 
789 </#if> 
790 <span class="o-metadata o-metadata--author"> 
791 ${anredetitel} ${vorname} ${nachname}  
792 </span> 
793 </#if> 
794 </#macro> 
795  
796 <#macro personImage document > 
797 <#if document?has_content> 
798  
799 <#if document.selectSingleNode("/root/dynamic-element[@name='portraitDMTKASDEMEDIUM']/dynamic-content")??> 
800 <#local node = document.selectSingleNode("/root/dynamic-element[@name='portraitDMTKASDEMEDIUM']/dynamic-content") /> 
801 <#local portraitDMTKASDEMEDIUM = node.getText() /> 
802 <#if portraitDMTKASDEMEDIUM?has_content > 
803 <#assign json = FrontendService.json.parseAsJson(portraitDMTKASDEMEDIUM) > 
804 <#assign mediaData = getRelatedMediaObject(json, themeDisplay, locale, FrontendService, "hd-resolution") > 
805 <#if mediaData?has_content && mediaData.url?has_content> 
806 <div class="c-person__media"> 
807 <div class="c-person__image-wrapper"> 
808 <img class="c-person__image" src="${mediaData.url}" /> 
809 </div> 
810 </div> 
811 </#if> 
812 </#if> 
813 </#if> 
814  
815 </#if> 
816 </#macro> 
817  
818 <#macro personDescription document > 
819 <#if document?has_content> 
820 <#local beschreibung = ""> 
821  
822 <#if document.selectSingleNode("/root/dynamic-element[@name='beschreibung']/dynamic-content")??> 
823 <#local node = document.selectSingleNode("/root/dynamic-element[@name='beschreibung']/dynamic-content") /> 
824 <#local nodeText = node.getText() /> 
825 <#if nodeText?has_content > 
826 <#local beschreibung = nodeText > 
827 </#if> 
828 </#if> 
829 </#if> 
830  
831 <#if beschreibung?has_content > 
832 <p> 
833 ${beschreibung} 
834 </p> 
835 </#if> 
836 </#macro> 
837  
838 <#-- END Content macros 
839 ------------------------------------------------------------------------------------------------------------------------> 
840  
841 <#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService") /> 
842 <#assign layout = themeDisplay.getLayout() /> 
843 <#assign parentLayoutId = layout.getParentPlid() /> 
844 <#assign parentLayout = layoutLocalService.fetchLayout(parentLayoutId) /> 
845 <#assign parentLayoutFriendlyURL = parentLayout.getFriendlyURL(locale) /> 
846  
847  
848 <div class="c-page-intro c-page-intro--blog c-page-blog__beitrag-intro"> 
849 <div class="o-page-module"> 
850 <div class="c-page-blog-intro__wrapper"> 
851 <#if coverDMTKASDEMEDIUM.getData()?has_content> 
852 <#assign urlparts = coverDMTKASDEMEDIUM.getData()?split("/") /> 
853 <#if (urlparts?size > 5) > 
854 <#assign linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',urlparts[2]?number, urlparts[5]?keep_before("?") ) /> 
855 </#if> 
856 <#if linkToDMT?has_content> 
857 <div class="c-page-blog-intro__image" style="background-image:url('${linkToDMT}');"> 
858 <@mediaReeference coverDMTKASDEMEDIUM.getData() /> 
859 </div> 
860 </#if> 
861 </#if> 
862  
863 <#assign title = .vars['reserved-article-title'].data/> 
864  
865 <#if categories?has_content> 
866 <div class="c-page-blog-intro__categories mb-5"> 
867 <#list categories as category> 
868 <a title="${category.getName()}" class="ac-slider-link mb-4 c-page-blog-intro__link mr-4" href="#">${category.getName()}</a> 
869 </#list> 
870 </div> 
871 </#if> 
872 <div class="c-page-blog-intro__meta"> 
873 <#if autorenWCSKASDEPERSON.getSiblings()?has_content> 
874 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON> 
875 <#if cur_autorenWCSKASDEPERSON.getData()?has_content> 
876 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) > 
877 <#if document?has_content> 
878 <div class="c-page-blog-intro__col d-flex"> 
879 <@personName document /> 
880 <#-- ${AssetCategoryLocalService.getAssetEntryAssetCategories(assetEntry.getEntryId())} --> 
881 </div> 
882 </#if> 
883 </#if> 
884 </#list> 
885 </#if> 
886  
887 <span class="d-flex o-metadata o-metadata--date"> 
888 <span class="mr-4 ac-svg-center"> 
889 <svg class="o-metadata--date__icon" viewBox="0 0 30 30"> 
890 <use xlink:href="${themeDisplay.getPathThemeImages()}/svg_sprite.svg#calendar"></use> 
891 </svg> 
892 </span> 
893 <#assign date = "" > 
894 <#assign modified_date = (.vars['reserved-article-modified-date'].data)!""> 
895 <#if modified_date?has_content> 
896 <#setting date_format = "dd. MMMM yyyy" /> 
897 <#setting locale = "de_DE" /> 
898 <#assign date = modified_date?date("EEE, d MMM yyyy HH:mm:ss Z")> 
899 </#if> 
900 ${date} 
901 </span> 
902  
903 <#if lesezeit??> 
904  
905 <span class="d-flex o-metadata o-metadata--time"> 
906 <span class="mr-4 ac-svg-center"> 
907 <svg class="o-metadata--time__icon" viewBox="0 0 30 30"> 
908 <use xlink:href="${themeDisplay.getPathThemeImages()}/svg_sprite.svg#time"></use> 
909 </svg> 
910 </span> 
911 ${lesezeit.getData()} 
912 </span> 
913 </#if> 
914 </div> 
915  
916 <div class="c-page-blog-intro__oberthema"> 
917 ${parentLayout.getName()} 
918 </div> 
919  
920 <div class="c-page-headline__wrapper"> 
921  
922 <div class="c-share"> 
923 <div class="c-share__wrapper--aside"> 
924 <div class="c-share c-share--aside c-share--aside-new"> 
925 <ul class="c-share__list"> 
926 <@ShareLink "merkliste" /> 
927 <@ShareLink "print" /> 
928 <@ShareLink "mail" /> 
929 <@ShareLink "share" /> 
930 </ul> 
931 </div> 
932 </div> 
933 <@ShareOverlay /> 
934 </div> 
935  
936 <h2 class="o-page-headline">${title}</h2> 
937 </div> 
938  
939 <#if (einfuehrungText.getData())?has_content> 
940 <h3 class="c-page-intro__subheadline">${einfuehrungText.getData()}</h3> 
941 </#if> 
942  
943 </div> 
944 </div> 
945 </div> 
946  
947 <div class="c-page-intro c-page-main c-page-main--detail c-page-main--blogdetail c-page-blog__beitrag-details"> 
948  
949 <div class="o-page-module c-page-main__text o-richtext c-fz-26 c-fz-20 c-fz-16"> 
950  
951 <#if contenttext.getSiblings()?has_content> 
952 <#assign iFrameId = 0 > 
953 <#list contenttext.getSiblings() as cur_contenttext> 
954  
955 <#if hasMedia(cur_contenttext) > 
956 <@contentMedia cur_contenttext /> 
957 </#if> 
958  
959 <#if hasMediaGallery(cur_contenttext) > 
960 <#if isSlider(cur_contenttext)> 
961 <#assign index = cur_contenttext?index> 
962 <div class="c-image-gallery"> 
963 <div class="c-image-gallery__bg" aria-hidden="true"></div> 
964 <#-- KAS_JAVASCRIPT <ImageGallery_Slider> --> 
965 <div class="c-image-gallery__inner" id="bilderstrecke_${index}"> 
966 <@contentMediaSlider cur_contenttext /> 
967 </div> 
968 <@PMGalleryScript index /> 
969 </div> 
970 <#else> 
971 <@contentMediaGallery cur_contenttext /> 
972 </#if> 
973  
974 </#if> 
975  
976 <#if hasIFrame(cur_contenttext) > 
977 <#assign iFrameId = iFrameId + 1 > 
978 <!--@contentIFrame cur_contenttext iFrameId "blog"/--> 
979 <@contentIFrame cur_contenttext iFrameId "blog"/> 
980 </#if> 
981  
982 <#if cur_contenttext.contenttwitter?? && cur_contenttext.contenttwitter.getSiblings()?has_content> 
983 <#list cur_contenttext.contenttwitter.getSiblings() as contenttwitter> 
984 <#assign iFrameId = iFrameId + 1 > 
985 <#assign elementId = iFrameId?string + "blog" > 
986 <#if (contenttwitter.getData())?has_content> 
987 <div id="kas-iframe-${elementId}" class="kas-iframe o-iframe c-twitter__wrapper"> 
988 <#assign 
989 isWhitelisted = FrontendService.media.isUrlWhitelisted(contenttwitter.getData()) 
990 externalContentAllowed = FrontendService.media.isExternalContentAllowed(themeDisplay) 
991  
992 iframeToRender = FrontendService.media.getIframeCodeIfNeeded(contenttwitter.getData(), isWhitelisted, externalContentAllowed) 
993 dsgvoOverlay = FrontendService.media.getDefaultIframeOverlay(locale) 
994
995 <div id="generated-iframe-wrapper-${elementId}" 
996 class="generated-iframe-wrapper o-iframe__generated-wrapper no-border"> 
997 <#if isWhitelisted> 
998 ${iframeToRender} 
999 <#elseif externalContentAllowed> 
1000 ${iframeToRender} 
1001 <#else> 
1002 <#-- Add DSGVO Overlay --> 
1003 <div id="iframe-dsgvo-overlay-${elementId}" 
1004 class="iframe-dsgvo-overlay-wrapper o-iframe__generated-wrapper--overlay" 
1005 onclick="turnOffOverlay_${elementId}()"> 
1006 ${dsgvoOverlay} 
1007 </div> 
1008 <div id="iframe-to-render-${elementId}" class="iframe-to-render-wrapper"> 
1009 <#-- iframeToRender goes here --> 
1010 </div> 
1011  
1012 <script> 
1013 function turnOffOverlay_${elementId}() { 
1014 document.getElementById( 
1015 "iframe-dsgvo-overlay-${elementId}").hidden = true; 
1016 jQuery('#iframe-to-render-${elementId}').html('${iframeToRender}'); 
1017
1018 </script> 
1019 </#if> 
1020 </div> 
1021 </div> 
1022 </#if> 
1023 </#list> 
1024 </#if> 
1025  
1026 <@contentText cur_contenttext /> 
1027  
1028 <#if hasQuotes(cur_contenttext) > 
1029 <@contentQuotes cur_contenttext /> 
1030 </#if> 
1031  
1032 </#list> 
1033 </#if> 
1034 </div> 
1035  
1036 </div> 
1037  
1038 <!-- Author Information -->  
1039 <#if autorenWCSKASDEPERSON.getSiblings()?has_content> 
1040 <#list autorenWCSKASDEPERSON.getSiblings() as cur_autorenWCSKASDEPERSON> 
1041 <#if cur_autorenWCSKASDEPERSON.getData()?has_content> 
1042 <#assign document = getSaxReaderDocument(cur_autorenWCSKASDEPERSON) > 
1043 <div class="o-page-module c-page-main c-page-main--detail c-page-main--blogdetail c-page-blog__beitrag-author-information"> 
1044 <div class="c-person"> 
1045 <div class="c-person-flex test"> 
1046 <#-- Media --> 
1047 <@personImage document />  
1048 <#-- Author Information --> 
1049 <div class="c-person__author-information"> 
1050 <h4> 
1051 ${languageUtil.get(locale, "ueber.den.autor")} 
1052 </h4> 
1053 <#if document?has_content> 
1054 <@personDescription document /> 
1055 <#-- ${AssetCategoryLocalService.getAssetEntryAssetCategories(assetEntry.getEntryId())} --> 
1056 </#if> 
1057 </div> 
1058 </div> 
1059 </div> 
1060 </div> 
1061 </#if> 
1062 </#list> 
1063 </#if> 
1064  
1065 <!-- Zu allen Beiträge --> 
1066  
1067 <div class="d-flex justify-content-center c-page-blog__additional"> 
1068 <a href="${parentLayoutFriendlyURL}"> 
1069 <h4 class="c-sp-kachel__headline_small_stable c-fz-20 "> 
1070 ${languageUtil.get(locale, "zu.allen.blogbeitraegen")} 
1071 </h4> 
1072 </a> 
1073 </div> 
1074  
1075  
1076 <#if !isACColorScheme() > 
1077 <#--Categories--> 
1078 <#if categories?has_content> 
1079 <div class="o-page-module"> 
1080 <div class="c-tagcloud"> 
1081 
1082 <#if !isDPMColorSchemeNEW()> 
1083 <h2 class="o-page-headline">${languageUtil.get(locale, "themen")}</h2> 
1084 </#if> 
1085 
1086 <#if isDPMColorSchemeNEW()> 
1087 <h2 class="o-page-headline">${languageUtil.get(locale, "aktuelle.themen")}</h2> 
1088 </#if> 
1089 
1090 <div class="c-tagcloud__tags"> 
1091  
1092 <#list categories as category> 
1093 <#assign href = FrontendService.category.getAnzeigeseiteToCategory(category, locale, themeDisplay.getScopeGroupId())!"/_404"> 
1094  
1095 <a title="${category.getName()}" class="c-tag" href="${href}"> 
1096 <svg class="c-tag__icon" viewBox="0 0 18 18"> 
1097 <use xlink:href="${themeDisplay.getPathThemeImages()}/svg_sprite.svg#icon-tag"></use> 
1098 </svg> 
1099 <span class="c-tag__name">${category.getName()}</span> 
1100 </a> 
1101 </#list> 
1102 </div> 
1103 </div> 
1104 </div> 
1105 <#elseif (editmode?? && editmode)> 
1106 <@errorMessage languageUtil.get(locale, "es.existieren.keine.themen") /> 
1107 </#if> 
1108 </#if> 
1109 </#if> 
1110</#if>