Fehler bei der Verarbeitung der Vorlage.
The following has evaluated to null or missing: ==> currentArticleId.embeddedArticleId [in template "20116#20154#PRESS_RELEASE" at line 25, column 45] ---- Tip: It's the step after the last dot that caused this error, not those before it. ---- Tip: If the failing expression is known to 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: #assign embeddedArticleIdRef = curren... [in template "20116#20154#PRESS_RELEASE" in macro "articleEmbed" at line 25, column 13] - Reached through: @articleEmbed articleId=embeddedArtic... [in template "20116#20154#PRESS_RELEASE" at line 75, column 5] ----
1<#-- Retrieve the published date meta data field of the web content -->
2<#assign displaydate = .vars['reserved-article-display-date'].data>
3<#-- Save the original page locale for later -->
4<#assign originalLocale = locale>
5<#-- Set the page locale to the portals default locale -->
6<#setting locale = localeUtil.getDefault()>
7<#-- Parse the date to a date object -->
8<#assign displaydate = displaydate?datetime("EEE, d MMM yyyy HH:mm:ss Z")>
9<#-- Set the page locale back to the original page locale -->
10<#assign locale = originalLocale>
11
12<#assign groupLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.GroupLocalService") />
13<#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService") />
14<#assign group = groupLocalService.getGroup(siteGroupId) />
15<#assign globalGroupId = themeDisplay.getCompanyGroupId() />
16<#assign facebookLink = group.getExpandoBridge().getAttribute("Social Media Facebook")!"" />
17<#assign instagramLink = group.getExpandoBridge().getAttribute("Social Media Instagram")!"" />
18<#assign linkedInLink = group.getExpandoBridge().getAttribute("Social Media LinkedIn")!"" />
19<#assign embeddedArticleId=parentStructureFieldSet31255.embeddedArticleIdFieldSet/>
20
21<#macro articleEmbed position articleId="">
22 <#if articleId?has_content && articleId.getSiblings()?has_content>
23
24 <#list articleId.getSiblings() as currentArticleId>
25 <#assign embeddedArticleIdRef = currentArticleId.embeddedArticleId.getData()?string />
26
27 <#if embeddedArticleIdRef?? && embeddedArticleIdRef?has_content && currentArticleId.embeddedArticlePosition?has_content && currentArticleId.embeddedArticlePosition.getData() == position>
28 <#-- helpful debug information
29 <h2>Article Id: ${currentArticleId.getData()?string}</h2>
30 <h3>Site group Id: ${siteGroupId}</h3>
31 <h3>Global group Id: ${globalGroupId}</h3>
32 -->
33
34 <#attempt>
35 <#local articleGlobal = journalArticleLocalService.fetchArticle(globalGroupId, embeddedArticleIdRef) />
36 <#--
37 TODO: I would like to use <@liferay_portlet> macro here, but for some reason it is unable to display global articles
38 - even though I verified that the global article is correctly returned by the service
39 -->
40 <#local webArticleContent = journalArticleLocalService.getArticleContent(articleGlobal, articleGlobal.getDDMTemplateKey(), "VIEW", locale, objectUtil("com.liferay.portal.kernel.portlet.PortletRequestModel", renderRequest, renderResponse), themeDisplay)/>
41
42 ${webArticleContent}
43 <#recover>
44 </#attempt>
45 <#attempt>
46 <#if !articleGlobal??>
47 <#local article = journalArticleLocalService.fetchArticle(siteGroupId, embeddedArticleIdRef) />
48
49 <#local preferencesMap = {
50 "portletSetupPortletDecoratorId": "barebone",
51 "groupId": siteGroupId,
52 "articleId": embeddedArticleIdRef
53 } />
54 <#local instanceId = "news_embedded_" + embeddedArticleIdRef />
55
56 <@liferay_portlet["runtime"]
57 defaultPreferences=freeMarkerPortletPreferences.getPreferences(preferencesMap)
58 instanceId="${instanceId}"
59 portletProviderAction=portletProviderAction.VIEW
60 portletName="com_liferay_journal_content_web_portlet_JournalContentPortlet"/>
61 </#if>
62 <#recover>
63 </#attempt>
64 </#if>
65 </#list>
66 </#if>
67</#macro>
68<div class="container ">
69 <#if (title)??><h1>${title.getData()}</h1></#if>
70 <#if (parentStructureFieldSet31255.title.getData())??>
71 <h1>${parentStructureFieldSet31255.title.getData()}</h1>
72 </#if>
73 <p class="meta">${displaydate?string["dd.MM.yyyy"]}<#if authorName?? && authorName.getData() != ""> | ${authorName.getData()}</#if></p>
74
75 <@articleEmbed articleId=embeddedArticleId position="afterTitle" />
76 <p class="lead">${parentStructureFieldSet31255.summary.getData()}</p>
77 <#if parentStructureFieldSet31255.folderId?? && parentStructureFieldSet31255.folderId.getData() != "">
78 <#assign folderId = parentStructureFieldSet31255.folderId.getData()/>
79 <#assign instanceId = "folder_" + folderId/>
80 <#assign preferences = freeMarkerPortletPreferences.getPreferences({
81 "rootFolderId": "${folderId}",
82 "displayStyleGroupId": "20145",
83 "mimeTypes": ["image/jpeg", "image/png", "image/jpg"]
84 }) />
85 <#if imageGalleryTitle?? && imageGalleryTitle.getData() != "">
86 <h2>${imageGalleryTitle.getData()}</h2>
87 </#if>
88 <@liferay_portlet["runtime"]
89 defaultPreferences="${preferences}"
90 instanceId="${instanceId}"
91 portletName="com_liferay_document_library_web_portlet_IGDisplayPortlet"
92 />
93 <#elseif parentStructureFieldSet31255.picture.getData()?? && parentStructureFieldSet31255.picture.getData() != "">
94 <p class="news-details__image-container">
95 <#assign pictureLink = parentStructureFieldSet31255.pictureLink/>
96 <#if pictureLink?? && pictureLink.getData()?? && pictureLink.getData() != "">
97 <a class="news-details__image-link" href="${(pictureLink??)?then(pictureLink.getData(),"")}">
98 <img
99 data-fileentryid="${parentStructureFieldSet31255.picture.getAttribute("fileEntryId")}"
100 alt="${parentStructureFieldSet31255.picture.getAttribute("alt")}"
101 src="${parentStructureFieldSet31255.picture.getData()}"
102 />
103 </a>
104 <#else>
105 <span class="news-details__image-link">
106 <img
107 data-fileentryid="${parentStructureFieldSet31255.picture.getAttribute("fileEntryId")}"
108 alt="${parentStructureFieldSet31255.picture.getAttribute("alt")}"
109 src="${parentStructureFieldSet31255.picture.getData()}"
110 />
111 </span>
112 </#if>
113 <#if parentStructureFieldSet31255.pictureLegend?? && parentStructureFieldSet31255.pictureLegend.getData()??><span class="meta">${parentStructureFieldSet31255.pictureLegend.getData()}</span></#if>
114 </p>
115 </#if>
116 <@articleEmbed articleId=embeddedArticleId position="beforeMain" />
117 <p>${parentStructureFieldSet31255.content.getData()}</p>
118 <@articleEmbed articleId=embeddedArticleId position="afterMain" />
119
120 <#assign listMedia = parentStructureFieldSet31255.attachmentsFieldSet.mediaFieldSet.getSiblings() />
121 <#if listMedia[0].media.getData()?has_content>
122 <h5 class="mb-3 mt-5">${parentStructureFieldSet31255.attachmentsFieldSet.attachments.getData()}</h5>
123 <#if parentStructureFieldSet31255.attachmentsFieldSet.attachments.getSiblings()?has_content>
124 <ul class="list-unstyled">
125 <#list listMedia as element>
126 <#if element.media.getData()?has_content>
127 <#assign mediaID = element.media.getData()?string?split("/")[7]?split("?")[0]>
128 <#assign groupId = element.media.getData()?string?split("/")[4]?number>
129 <#assign DLFileEntryLocalService = serviceLocator.findService("com.liferay.document.library.kernel.service.DLFileEntryLocalService") />
130 <#assign file=DLFileEntryLocalService.getFileEntryByUuidAndGroupId(mediaID, groupId)>
131 <#assign fileTitle = file.title>
132 <#if element.mediaTitle?? && element.mediaTitle.getData()?? && element.mediaTitle.getData() != "">
133 <#assign fileTitle = element.mediaTitle.getData()>
134 </#if>
135
136 <li class="mb-2">
137 <a download target="_blank" href="${element.media.getData()}">
138 <i class="mr-3 icon icon-download-3"></i>
139 ${fileTitle} (${file.extension?upper_case}, ${(file.getSize()/1024)?string(",##0")} KB)
140 </a>
141 </li>
142 </#if>
143 </#list>
144 </ul>
145 </#if>
146 </#if>
147
148 <@articleEmbed articleId=embeddedArticleId position="atEnd" />
149
150 <#if (facebookLink?? && facebookLink != "") || (instagramLink?? && instagramLink != "") || (linkedInLink?? && linkedInLink != "")>
151 <div class="news-details__social-media-section">
152 <p>
153 <#if socialMediaTitle?? && socialMediaTitle.getData()?? && socialMediaTitle.getData() != "">
154 ${socialMediaTitle.getData()}
155 <#else>
156 Folgen Sie uns auf Social Media
157 </#if>
158 </p>
159 <div class="news-details__social-media-links">
160 <#if facebookLink?? && facebookLink != ""><a href="${facebookLink}"><i class="icon-facebook"></i></a></#if>
161 <#if instagramLink?? && instagramLink != ""><a href="${instagramLink}"><i class="icon-instagram"></i></a></#if>
162 <#if linkedInLink?? && linkedInLink != ""><a href="${linkedInLink}"><i class="icon-linkedin"></i></a></#if>
163 </div>
164 </div>
165 </#if>
166
167 <hr>
168
169 <a class="mt-auto" href="javascript:window.history.back()">
170 <i class="mr-2 icon icon-arrow-left-12"></i>
171 <@liferay.language key="back"/>
172 </a>
173</div>
174
175<script>
176 const wrapper = document.querySelector('.card-page');
177 if (wrapper) {
178 const elements = Array.from(wrapper.getElementsByTagName('picture'));
179 elements.map(element => element.nextSibling.nodeValue = '');
180 }
181</script>
182
183<!--Updated by clavisIT ddmSync-->