Downloadcenter
Fehler bei der Verarbeitung der Vorlage.
Java method "de.vbl.portal.setup.SmartHelper.processInputHTML(String)" threw an exception when invoked on de.vbl.portal.setup.SmartHelper object "de.vbl.portal.setup.SmartHelper@6e840e5"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: ${smartHelper.processInputHTML(articl... [in template "20115#20151#NACHRICHT" at line 93, column 29] ----
1<#--Smart Template-->
2<#assign targetBlank = 'target="_blank" rel="noopener noreferrer"' />
3
4<#if !(sidebar.getData())?? || sidebar.getData()?has_content && sidebar.getData() != "no">
5 <#if !(headline.getData())?? || headline.getData()?has_content && headline.getData() != "no">
6 <h1<#if (headlineUnderline.getData())!?has_content && headlineUnderline.getData() != "no"> class="h-underline"</#if>>${htmlUtil.escape((.vars['reserved-article-title'].data)!)}</h1>
7 </#if>
8 <div class="row">
9 <div class="content-left">
10<#else>
11 <#if !(headline.getData())?? || headline.getData()?has_content && headline.getData() != "no">
12 <h1<#if (headlineUnderline.getData())!?has_content && headlineUnderline.getData() != "no"> class="h-underline"</#if>>${htmlUtil.escape((.vars['reserved-article-title'].data)!)}</h1>
13 </#if>
14</#if>
15 <div class="row smart-template">
16 <div class="col">
17 <#if (image.imageLink.linkOption.getData())?? && image.imageLink.linkOption.getData() != "no">
18 <#assign getLink>
19 <#if image.imageLink.linkDocument.getData()?? && image.imageLink.linkDocument.getData() != "">
20 ${(image.imageLink.linkDocument.getData())!}
21 <#elseif image.imageLink.linkInternal.getFriendlyUrl()?? && image.imageLink.linkInternal.getFriendlyUrl() != "">
22 ${(image.imageLink.linkInternal.getFriendlyUrl())!}
23 <#elseif image.imageLink.linkNews.getData()?? && image.imageLink.linkNews.getData() != "">
24 <@getLinkToNews/>
25 <#elseif image.imageLink.linkExternal.getData()?? && image.imageLink.linkExternal.getData() != "">
26 ${(image.imageLink.linkExternal.getData())!}
27 </#if>
28 </#assign>
29 </#if>
30 <#if image.getData()?? && image.getData() != "" && image.imagePosition.getData() == "center">
31 <div class="teaser teaser-big-image-text">
32 <div class="teaser-image-part ${htmlUtil.escape((image.imagePrintable.getData())!)}">
33 <#if (image.imageLink.linkOption.getData())?? && image.imageLink.linkOption.getData() != "no">
34 <a href="${htmlUtil.escape(getLink)}"<#if image.imageLink.linkTarget.getData()?? && image.imageLink.linkTarget.getData() == "yes"> ${htmlUtil.escape(targetBlank)}</#if><#if image.imageLink.linkTitle.getData()?? && image.imageLink.linkTitle.getData() != ""> title="${htmlUtil.escape((image.imageLink.linkTitle.getData())!)}"</#if>>
35 <img data-fileentryid="${(image.getAttribute("fileEntryId"))!}"
36 src="${htmlUtil.escape((image.getData())!)}" role="img" alt="${htmlUtil.escape((image.getAttribute("alt"))!)}" />
37 </a>
38 <#else>
39 <img data-fileentryid="${(image.getAttribute("fileEntryId"))!}"
40 src="${htmlUtil.escape((image.getData())!)}" role="img" alt="${htmlUtil.escape((image.getAttribute("alt"))!)}" />
41 </#if>
42 </div>
43 <#if image.imageText.getData()?? && image.imageText.getData() != "">
44 <div class="teaser-text-part">
45 <div class="teaser-text teaser-text-blue teaser-text-right">
46 <p>
47 ${htmlUtil.escape((image.imageText.getData())!)}
48 </p>
49 </div>
50 </div>
51 </#if>
52 </div>
53 </#if>
54
55 <div class="text<#if (headlineUnderline.getData())!?has_content && headlineUnderline.getData() != "no"> h-underline</#if>">
56 <#if teaserText.getData()?? && teaserText.getData() != "">
57 <p class="lead">${htmlUtil.escape((teaserText.getData())!)}</p>
58 </#if>
59
60 <#if image.getData()?? && image.getData() != "" && image.imagePosition.getData() != "center">
61 <div class="row d-block floating-text-and-image image-${htmlUtil.escape((image.imagePosition.getData())!)}">
62
63 <figure class="col-12 col-md-6 col-lg-4 ${htmlUtil.escape((image.imagePrintable.getData())!)}">
64 <#if (image.imageLink.linkOption.getData())?? && image.imageLink.linkOption.getData() != "no">
65 <a href="${htmlUtil.escape((getLink)!)}"<#if image.imageLink.linkTarget.getData()?? && image.imageLink.linkTarget.getData() == "yes"> ${htmlUtil.escape(targetBlank)}</#if><#if image.imageLink.linkTitle.getData()?? && image.imageLink.linkTitle.getData() != ""> title="${htmlUtil.escape((image.imageLink.linkTitle.getData())!)}"</#if>>
66 <img data-fileentryid="${(image.getAttribute("fileEntryId"))!}"
67 src="${htmlUtil.escape((image.getData())!)}" alt="${htmlUtil.escape((image.getAttribute("alt"))!)}"
68 role="img"
69 class="img-fluid" />
70 </a>
71 <#else>
72 <img data-fileentryid="${(image.getAttribute("fileEntryId"))!}"
73 src="${htmlUtil.escape((image.getData())!)}" alt="${htmlUtil.escape((image.getAttribute("alt"))!)}"
74 role="img"
75 class="img-fluid" />
76 </#if>
77 <#if image.imageText.getData()?? && image.imageText.getData() != "">
78 <figcaption>
79 ${htmlUtil.escape((image.imageText.getData())!)}
80 </figcaption>
81 </#if>
82 </figure>
83 <div class="floating-text">
84 <#if smartHelper??>
85 ${smartHelper.processInputHTML(articleText.getData()!)}
86 <#else>
87 ${(articleText.getData())!}
88 </#if>
89 </div>
90 </div>
91 <#else>
92 <#if smartHelper??>
93 ${smartHelper.processInputHTML(articleText.getData()!)}
94 <#else>
95 ${(articleText.getData())!}
96 </#if>
97 </#if>
98
99 <#if section?? && section.getSiblings()?has_content>
100 <#assign counter=0 />
101 <#list section.getSiblings() as cur_section>
102
103 <#if cur_section.sectionHeadline.getData() != "" && cur_section.sectionType.getData() == "normal">
104 <h3<#if (cur_section.sectionHeadline.sectionHeadlineUnderline.getData())!?has_content && cur_section.sectionHeadline.sectionHeadlineUnderline.getData() != "no"> class="h-underline"</#if>>
105 ${htmlUtil.escape((cur_section.sectionHeadline.getData())!)}
106 </h3>
107
108 <#elseif cur_section.sectionType.getData()?starts_with("accordion")>
109 <#if cur_section.sectionType.getData() =="accordion-first" || cur_section.sectionType.getData() =="accordion">
110 <#assign counter=counter+1 />
111 <#assign accordionId >accordion-${(.vars['reserved-article-id'].data)!}-${(counter)!}</#assign>
112 <div class="accordion article" id="${(accordionId)!}">
113 </#if>
114 <div class="card">
115 <#assign accordionPanelId >${(.vars['reserved-article-id'].data)!}-${(cur_section?index)!}</#assign>
116 <div id="heading-${(accordionPanelId)!}" class="card-header card-${htmlUtil.escape((cur_section.sectionAccordion.color.getData())!)}">
117 <h2 class="card-title">
118 <button data-target="#collapse-${(accordionPanelId)!}" type="button" data-toggle="collapse"
119 aria-expanded="${htmlUtil.escape((cur_section.sectionAccordion.expanded.getData())!)}"
120 aria-controls="collapse-${(accordionPanelId)!}"
121 class="btn btn-block text-left collapsible-icon<#if cur_section.sectionAccordion.expanded.getData() == "false"> collapsed</#if>">
122 ${htmlUtil.escape((cur_section.sectionHeadline.getData())!)}
123 </button>
124 </h2>
125 </div>
126 <div id="collapse-${(accordionPanelId)!}" aria-labelledby="heading-${(accordionPanelId)!}" data-parent="#${(accordionId)!}" class="collapse<#if cur_section.sectionAccordion.expanded.getData() == "true"> show</#if>">
127 <div class="card-body">
128 </#if>
129 <#if cur_section.block.getSiblings()?has_content>
130 <#list cur_section.block.getSiblings() as cur_block>
131 <#if (cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkOption.getData())?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkOption.getData() != "no">
132 <#assign getBlockLink>
133 <#if cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkDocument.getData()?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkDocument.getData() != "">
134 ${(cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkDocument.getData())!}
135 <#elseif cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkInternal.getFriendlyUrl()?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkInternal.getFriendlyUrl() != "">
136 ${(cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkInternal.getFriendlyUrl())!}
137 <#elseif cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkNews.getData()?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkNews.getData() != "">
138 <@getBlockLinkToNews cur_block/>
139 <#elseif cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkExternal.getData()?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkExternal.getData() != "">
140 ${(cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkExternal.getData())!}
141 </#if>
142 </#assign>
143 </#if>
144 <#if (cur_block.blockSeparatorImage.blockImage.getData())?? && cur_block.blockSeparatorImage.blockImage.getData()?has_content && cur_block.blockSeparatorImage.blockImage.blockImagePosition.getData() == "center">
145 <div class="teaser teaser-big-image-text">
146 <div class="teaser-image-part ${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.blockImagePrintable.getData())!)}">
147 <#if (cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkOption.getData())?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkOption.getData() != "no">
148 <a href="${htmlUtil.escape(getBlockLink)}"<#if cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkTarget.getData()?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkTarget.getData() == "yes"> ${htmlUtil.escape(targetBlank)}</#if><#if cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkTitle.getData()?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkTitle.getData() != ""> title="${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkTitle.getData())!)}"</#if>>
149 <img data-fileentryid="${(cur_block.blockSeparatorImage.blockImage.getAttribute("fileEntryId"))!}"
150 src="${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.getData())!)}"
151 role="img"
152 alt="${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.getAttribute("alt"))!)}" />
153 </a>
154 <#else>
155 <img data-fileentryid="${(cur_block.blockSeparatorImage.blockImage.getAttribute("fileEntryId"))!}"
156 src="${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.getData())!)}"
157 role="img"
158 alt="${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.getAttribute("alt"))!)}" />
159 </#if>
160 </div>
161 <#if cur_block.blockSeparatorImage.blockImage.blockImageText.getData()?? && cur_block.blockSeparatorImage.blockImage.blockImageText.getData() != "">
162 <div class="teaser-text-part">
163 <div class="teaser-text teaser-text-blue teaser-text-right">
164 <p>
165 ${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.blockImageText.getData())!)}
166 </p>
167 </div>
168 </div>
169 </#if>
170 </div>
171 </#if>
172
173 <#if (cur_block.blockSeparatorImage.blockImage.getData())?? && cur_block.blockSeparatorImage.blockImage.getData()?has_content && cur_block.blockSeparatorImage.blockImage.blockImagePosition.getData() != "center">
174 <div class="row d-block floating-text-and-image image-${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.blockImagePosition.getData())!)}">
175
176 <figure class="col-12 col-md-6 col-lg-4 ${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.blockImagePrintable.getData())!)}">
177 <#if (cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkOption.getData())?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkOption.getData() != "no">
178 <a href="${htmlUtil.escape((getBlockLink)!)}"<#if cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkTarget.getData()?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkTarget.getData() == "yes"> ${htmlUtil.escape(targetBlank)}</#if><#if cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkTitle.getData()?? && cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkTitle.getData() != ""> title="${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkTitle.getData())!)}"</#if>>
179 <img data-fileentryid="${(cur_block.blockSeparatorImage.blockImage.getAttribute("fileEntryId"))!}"
180 src="${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.getData())!)}"
181 alt="${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.getAttribute("alt"))!)}"
182 role="img"
183 class="img-fluid" />
184 </a>
185 <#else>
186 <img data-fileentryid="${(cur_block.blockSeparatorImage.blockImage.getAttribute("fileEntryId"))!}"
187 src="${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.getData())!)}"
188 alt="${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.getAttribute("alt"))!)}"
189 role="img"
190 class="img-fluid" />
191 </#if>
192 <#if cur_block.blockSeparatorImage.blockImage.blockImageText.getData()?? && cur_block.blockSeparatorImage.blockImage.blockImageText.getData() != "">
193 <figcaption>
194 ${htmlUtil.escape((cur_block.blockSeparatorImage.blockImage.blockImageText.getData())!)}
195 </figcaption>
196 </#if>
197 </figure>
198 <div class="floating-text<#if (cur_block.blockArticleHeadlineUnderline.getData())!?has_content && cur_block.blockArticleHeadlineUnderline.getData() != "no"> h-underline</#if> ${htmlUtil.escape((cur_block.blockSeparatorTableList.blockTableType.getData())!)} ${htmlUtil.escape((cur_block.blockSeparatorTableList.blockListType.getData())!)}">
199 <#if smartHelper??>
200 ${smartHelper.processInputHTML((cur_block.blockArticleText.getData())!)}
201 ${smartHelper.processInputHTML((cur_block.blockSeparatorHTMLEditor.blockHTMLEditorArticleText.getData())!)}
202 <#else>
203 ${(cur_block.blockArticleText.getData())!}
204 ${(cur_block.blockSeparatorHTMLEditor.blockHTMLEditorArticleText.getData())!}
205 </#if>
206 </div>
207 </div>
208 <#else>
209 <div class="<#if (cur_block.blockArticleHeadlineUnderline.getData())!?has_content && cur_block.blockArticleHeadlineUnderline.getData() != "no">h-underline</#if> ${htmlUtil.escape((cur_block.blockSeparatorTableList.blockTableType.getData())!)} ${htmlUtil.escape((cur_block.blockSeparatorTableList.blockListType.getData())!)}">
210 <#if (cur_block.blockSeparatorVideo.blockSeparatorVideoId.getData())!?has_content && cur_block.blockSeparatorVideo.blockSeparatorVideoId.getData() != "">
211 <div class="stream24 ${htmlUtil.escape((cur_block.blockSeparatorVideo.blockSeparatorVideoPosition.getData())!)}">
212 <div class="stream24-responsive">
213 <iframe width="800" height="450" allowFullScreen
214 src="//api.stream24.net/vod/getVideo.php?id=${htmlUtil.escape((cur_block.blockSeparatorVideo.blockSeparatorVideoId.getData())!)}&mode=iframe"
215 style="border: none; overflow: hidden;"
216 allow="autoplay; fullscreen; picture-in-picture; encrypted-media"></iframe>
217 </div>
218 </div>
219 </#if>
220 <#if smartHelper??>
221 ${smartHelper.processInputHTML((cur_block.blockArticleText.getData())!)}
222 ${smartHelper.processInputHTML((cur_block.blockSeparatorHTMLEditor.blockHTMLEditorArticleText.getData())!)}
223 <#else>
224 ${(cur_block.blockArticleText.getData())!}
225 ${(cur_block.blockSeparatorHTMLEditor.blockHTMLEditorArticleText.getData())!}
226 </#if>
227 </div>
228 </#if>
229 </#list>
230 </#if>
231
232 <#if cur_section.sectionType.getData()?starts_with("accordion")>
233 </div>
234 </div>
235 </div>
236 <#if cur_section.sectionType.getData() =="accordion-last" || cur_section.sectionType.getData() =="accordion">
237 </div>
238 </#if>
239 </#if>
240 </#list>
241 </#if>
242 </div>
243 </div>
244 </div>
245<#if !(sidebar.getData())?? || sidebar.getData()?has_content && sidebar.getData() != "no">
246 </div>
247 <@getSidebar/>
248</div>
249</#if>
250
251<script>
252 <#-- Accordion: Scroll to top of accordion as anchor Link -->
253 $(document).ready(function () {
254 // check if there is a hash in the url
255 if ( window.location.hash != null && window.location.hash !== '' )
256 {
257 // show the panel based on the hash now:
258 $('.collapse').removeClass('show');
259 $(window.location.hash + '.collapse').collapse('show');
260 }
261 });
262 <#-- Accordion: Scroll to top of active (open) accordion on click -->
263 $('.collapse').on('show.bs.collapse', function(e) {
264 var $card = $(this).closest('.card');
265 var $open = $($(this).data('parent')).find('.collapse.show');
266
267 var additionalOffset = 0;
268 if($card.prevAll().filter($open.closest('.card')).length !== 0)
269 {
270 additionalOffset = $open.height();
271 }
272 $('html,body').animate({
273 scrollTop: $card.offset().top - additionalOffset -48
274 }, 500);
275 });
276</script>
277
278<#macro getSidebar>
279 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
280 <#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
281 <#assign AssetLinkLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetLinkLocalService")>
282
283 <#assign journalArticle = JournalArticleLocalService.getArticle(getterUtil.getLong(groupId), getterUtil.getString(.vars['reserved-article-id'].data))>
284 <#assign primK = journalArticle.getResourcePrimKey()>
285 <#assign assetEntry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", primK)>
286 <#assign currentArticleRelatedLinks = AssetLinkLocalService.getDirectLinks(assetEntry.getEntryId()) >
287
288 <#if currentArticleRelatedLinks?size != 0>
289 <div class="content-sidebar<#if image.getData()?? && image.getData() != ""> image</#if>">
290 <#assign assets=[]/>
291
292 <#list currentArticleRelatedLinks?sort_by("linkId") as link>
293 <#assign linkedAssetEntry = AssetEntryLocalService.getEntry(link.getEntryId2())>
294 <#assign assets= assets + [linkedAssetEntry]/>
295 </#list>
296
297 <#if assets??>
298 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
299 <#assign AssetEntryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetEntryLocalService")>
300 <#assign dateUtil = staticUtil["com.liferay.portal.kernel.util.DateUtil"] />
301 <#assign calendarUtil = staticUtil["com.liferay.portal.kernel.util.CalendarUtil"] />
302 <#assign today=dateUtil.newDate()/>
303
304 <#list assets as asset>
305
306
307 <#if (asset.getPublishDate())??>
308 <#assign publishFrom=asset.getPublishDate()/>
309 <#assign isPublished=dateUtil.compareTo(today, publishFrom) gt 0 />
310 <#else>
311 <#assign isPublished=true />
312 </#if>
313
314 <#if (asset.getExpirationDate())??>
315 <#assign publishTill=asset.getExpirationDate()/>
316 <#assign isExpired=calendarUtil.afterByDay(today, publishTill) />
317 <#else>
318 <#assign isExpired=false />
319 </#if>
320
321
322 <#if isPublished && !isExpired && asset.getAssetRenderer()??>
323
324 <#assign renderer = asset.getAssetRenderer() />
325 <#if (renderer.getAssetObject())??>
326 <#assign article = renderer.getAssetObject() />
327 <#assign primK = article.getResourcePrimKey()>
328 <#assign entry = AssetEntryLocalService.getEntry("com.liferay.journal.model.JournalArticle", primK)>
329 <#assign languageId=themeDisplay.getLanguageId()/>
330 <#if !article.isExpired() && !article.isInTrash() && article.getTitle(languageId, false)?has_content>
331 <#assign articleStructure = article.getDDMStructureKey()/>
332 <#if articleStructure == "SIMPLETEASER" || articleStructure == "TEASER" || articleStructure == "LISTE">
333 <@liferay_asset["asset-display"]
334 assetEntry=entry
335 assetRenderer=renderer
336 showExtraInfo=false
337 />
338 </#if>
339 </#if>
340 </#if>
341
342 </#if>
343 </#list>
344 </#if>
345 </div>
346 </#if>
347</#macro>
348
349<#macro getLinkToNews>
350 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
351 AssetTagLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")
352 />
353
354 <#assign data=image.imageLink.linkNews.getData()?eval>
355 <#assign journalArticle = JournalArticleLocalService.fetchLatestArticle(getterUtil.getLong(data.classPK))!""/>
356 <#if journalArticle?has_content>
357 <#assign
358 articleStructure=journalArticle.getDDMStructure().getStructureKey()
359 tags=AssetTagLocalService.getTags(data.className,getterUtil.getLong(data.classPK))
360 />
361
362 <#if articleStructure == "NACHRICHT">
363 <#assign lang=locale.getLanguage()/>
364 <#assign linkToNews=themeDisplay.getPortalURL()+"/"+lang+"/-/"+journalArticle.getUrlTitle()/>
365 ${linkToNews}
366 <#elseif articleStructure == "BASIC-WEB-CONTENT">
367 <#list tags as tag>
368
369 <#if tag.getName()=="nachricht">
370 <#assign lang=locale.getLanguage()/>
371 <#assign linkToNews=themeDisplay.getPortalURL()+"/"+lang+"/-/"+journalArticle.getUrlTitle()/>
372 ${linkToNews}
373 </#if>
374 </#list>
375 </#if>
376 </#if>
377</#macro>
378
379<#macro getBlockLinkToNews cur_block>
380 <#assign JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
381 AssetTagLocalService=serviceLocator.findService("com.liferay.asset.kernel.service.AssetTagLocalService")
382 />
383
384 <#assign data=cur_block.blockSeparatorImage.blockImage.blockImageLink.blockLinkNews.getData()?eval>
385 <#assign journalArticle = JournalArticleLocalService.fetchLatestArticle(getterUtil.getLong(data.classPK))!""/>
386 <#if journalArticle?has_content>
387 <#assign
388 articleStructure=journalArticle.getDDMStructure().getStructureKey()
389 tags=AssetTagLocalService.getTags(data.className,getterUtil.getLong(data.classPK))
390 />
391
392 <#if articleStructure == "NACHRICHT">
393 <#assign lang=locale.getLanguage()/>
394 <#assign linkToNews=themeDisplay.getPortalURL()+"/"+lang+"/-/"+journalArticle.getUrlTitle()/>
395 ${linkToNews}
396 <#elseif articleStructure == "BASIC-WEB-CONTENT">
397 <#list tags as tag>
398
399 <#if tag.getName()=="nachricht">
400 <#assign lang=locale.getLanguage()/>
401 <#assign linkToNews=themeDisplay.getPortalURL()+"/"+lang+"/-/"+journalArticle.getUrlTitle()/>
402 ${linkToNews}
403 </#if>
404 </#list>
405 </#if>
406 </#if>
407</#macro>