Une erreur s'est produite lors du traitement du modèle.
When calling macro "PMShare", required parameter "content" (parameter #1) was specified, but had null/missing value. ---- Tip: If the parameter value expression on the caller side is known to be legally null/missing, you may want to specify a default value for it with the "!" operator, like paramValue!defaultValue. ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: #macro PMShare content registerLink="" [in template "kas-de-theme_SERVLET_CONTEXT_/templates/macros/page-modules/PMShare.ftl" in macro "PMShare" at line 33, column 1] - Reached through: @PMShare registerLink [in template "252001#252047#7313051" at line 304, column 9] ----
1<#-- used @ Veranstaltungen-Detailseite, Main Content -->
2<#-- used @ Themen-Detailseite, Main Content -->
3<#-- used @ Publikationen-Detailseite, Main Content -->
4<#-- used @ Personen-Detailseite, Main Content -->
5
6<#include "${fullTemplatesPath}/functions/liferayServicesUtil.ftl" />
7<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
8<#include "${fullTemplatesPath}/macros/debugging.ftl" />
9
10<#include "${fullTemplatesPath}/macros/page-modules/PMPageContent.ftl" />
11
12<#-- additional intro+special content for personen-detailpage -->
13<#include "${fullTemplatesPath}/macros/page-modules/PMShare.ftl" />
14<#include "${fullTemplatesPath}/macros/page-modules/PMIntro.ftl" />
15<#include "${fullTemplatesPath}/macros/page-modules/PMIntroBanner.ftl" />
16<#include "${fullTemplatesPath}/macros/page-modules/PMPersonContent.ftl" />
17<#include "${fullTemplatesPath}/macros/page-modules/PMPersonDocuments.ftl" />
18<#include "${fullTemplatesPath}/macros/atomic-modules/AMMetadata.ftl" />
19<#include "${fullTemplatesPath}/macros/atomic-modules/AMAddress.ftl" />
20<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" />
21<#include "${fullTemplatesPath}/macros/atomic-modules/AMMetadataContact.ftl" />
22
23<#assign
24
25 DLFileEntryLocalService = getDLFileEntryLocalService()
26 JournalArticleService = getJournalArticleService()
27
28
29 themeDisplay = getThemeDisplay()
30
31 locale = themeDisplay.getLocale()
32 default_locale = FrontendService.language.defaultLocale()
33
34 currentUrl = themeDisplay.getURLCurrent()
35 editmode = FrontendService.user.isPrivilegedUser(themeDisplay)
36
37 layout = themeDisplay.getLayout()
38 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id")
39/>
40
41<#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")>
42 <#assign
43 classModifier = "c-page-main--veranstaltungedetail"
44 portletId = "ADT_KASDE_VERANSTALTUNGEN_CONTENT"
45 />
46<#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")>
47 <#assign
48 classModifier = "c-page-main--publikationendetail"
49 portletId = "ADT_KASDE_PUBLIKATIONEN_CONTENT"
50 />
51<#elseif layouttpl?contains("LAYOUT_KASDE_THEMEN_DETAIL")>
52 <#assign
53 classModifier = "c-page-main--themadetail"
54 portletId = "ADT_KASDE_THEMA_CONTENT"
55 />
56<#elseif layouttpl?contains("LAYOUT_KASDE_PERSONEN_DETAIL")>
57 <#assign
58 classModifier = "c-page-main--themadetail"
59 portletId = "ADT_KASDE_PERSONEN_CONTENT"
60 />
61<#else>
62 <#assign
63 classModifier = "c-page-main"
64 portletId = "ADT_KASDE_CONTENT"
65 />
66</#if>
67
68<#assign content = [] >
69
70<#-- check if on detail page -->
71<#-- Publikationen, Veranstaltungen -->
72<#-- check if it is a hidden detail page - get article from url -->
73<#if currentUrl?contains("/-/content") >
74
75 <#attempt>
76 <#assign journalArticle = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)!"" >
77 <#recover>
78 <#if (editmode?? && editmode)>
79 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_CONTENT" layouttpl currentUrl />
80 </#if>
81 </#attempt>
82
83 <#if journalArticle?has_content>
84
85 <#if journalArticle.resourcePrimKey??>
86 <#assign primaryKey = journalArticle.resourcePrimKey?number >
87 <#elseif journalArticle.classPK??>
88 <#assign primaryKey = journalArticle.classPK?number >
89 </#if>
90
91 <#assign
92 jsonString = FrontendService.article.getWebcontent(primaryKey)
93 json = FrontendService.json.parseAsJson(jsonString)
94
95 data = {}
96 registerLink = ""
97
98 />
99 <@debugJsonString jsonString "ADT_KASDE_CONTENT" />
100
101 <#-- Personen Detailpage Content renders also the intro -->
102 <#if layouttpl?contains("LAYOUT_KASDE_PERSONEN_DETAIL")>
103 <#-- get general data for Person-->
104 <#assign
105 data_person = getRelatedPerson(json, locale, primaryKey, FrontendService, themeDisplay)
106 data_intro = {}
107 data_abteilung = []
108 />
109
110 <#-- get Projekte (Auslandsbüros) for Person -->
111 <#assign data_auslandsbuero = getRelatedProjekte(locale, primaryKey, FrontendService, themeDisplay) />
112 <#if data_auslandsbuero?has_content>
113 <#assign data_person = data_person + {"auslandsbuero": data_auslandsbuero} />
114 </#if>
115
116 <#-- get Abteilungen for Person -->
117 <#assign abbteilungen = FrontendService.category.getCategoriesToArticle(primaryKey, "ABTEILUNG") />
118 <#if abbteilungen?? >
119 <#list abbteilungen as abteilung >
120 <#assign
121 data_abteilung = data_abteilung + [{
122 "title": abteilung.getTitle(locale),
123 "href": FrontendService.category.getAnzeigeseiteToCategory(abteilung, locale, themeDisplay.getScopeGroupId())!"/_404"
124 }]
125 />
126 </#list>
127 </#if>
128 <#if data_abteilung?has_content>
129 <#assign data_person = data_person + {"abteilung": data_abteilung} />
130 </#if>
131
132 <#-- assign Data for Intro -->
133 <#if data_person.name?? && data_person.lastname?? >
134 <#assign name = data_person.name + " " + data_person.lastname >
135
136 <#if data_person.anredetitel??>
137 <#assign name = data_person.anredetitel + " " + name />
138 </#if>
139 <#assign data_intro = data_intro + { "title" : name } />
140 </#if>
141
142 <#if data_person.subheadline??>
143 <#assign data_intro = data_intro + {"subheadline" : data_person.subheadline} />
144 </#if>
145
146 <#-- render title + function -->
147 <div class="o-page-module o-page-module--full">
148 <@PMIntro "ADT_KASDE_PERSON_INTRO" data_intro AMMetadata AMDatetime/>
149 <#-- render blue box -->
150 <@PMIntroBanner "ADT_KASDE_PERSON_INTRO_BANNER" data_person "" />
151 <#-- render contact data, auslandsbüros, abteilungen -->
152 <@PMPersonContent "ADT_KASDE_PERSON_INFO" data_person "" AMMetadataContact AMAddress />
153 <#-- render persons document -->
154 <#if data_person.documents??>
155 <@PMPersonDocuments "ADT_KASDE_PERSON_DOCUMENT" data_person.documents "" />
156 </#if>
157 </div>
158
159 </#if>
160
161 <#-- Veranstaltungs-Detail only -->
162 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")>
163 <#-- Headline "Im Detail" for Veranstaltungs-Detail -->
164 <#assign data = data + { "headline" : languageUtil.get(locale, "details") }>
165
166 <#-- ausgebucht -->
167 <#if hasContent('ausgebucht', locale, json)>
168 <#assign data = data + { "ausgebucht" : getValueForLanguage('ausgebucht', locale, json, "first") }>
169 </#if>
170
171 <#-- storniert -->
172 <#if hasContent('storniert', locale, json)>
173 <#assign data = data + { "storniert" : getValueForLanguage('storniert', locale, json, "first") }>
174 </#if>
175 <#-- Programm Data -->
176 <#assign program = getProgramm(json) >
177 <#if program?has_content>
178 <#assign data = data + { "program" : program } >
179 </#if>
180
181 <#assign registerLink = FrontendService.event.getEventSignupLink(themeDisplay)!"" />
182 </#if>
183
184 <#-- Beschreibung -->
185 <#if hasContent('beschreibung', locale, json)>
186 <#assign data = data + { "description" : getValueForLanguage('beschreibung', locale, json, "first") }>
187 </#if>
188
189 <#-- Contenttext -->
190 <#if (json["contenttext"][locale])?? >
191 <#assign data = data + { "text": json["contenttext"][locale] } >
192 <#elseif (json["contenttext"][default_locale])??>
193 <#assign data = data + { "text": json["contenttext"][default_locale] } >
194 </#if>
195
196 <#if (json["contentbildunterschrift"][locale])?? >
197 <#assign data = data + { "caption": json["contentbildunterschrift"][locale] } >
198 <#elseif (json["contentbildunterschrift"][default_locale])??>
199 <#assign data = data + { "caption": json["contentbildunterschrift"][default_locale] } >
200 </#if>
201
202 <#-- Bilderstrecke -->
203 <#assign series = getContentBilderstrecke(json) >
204 <#if series?has_content>
205 <#assign data = data + { "series" : series } />
206 </#if>
207
208 <#-- Media -->
209 <#if (json["contentmediumDMTKASDEMEDIUM"][locale])?? >
210 <#assign data = data + { "media": json["contentmediumDMTKASDEMEDIUM"][locale] } >
211 <#elseif (json["contentmediumDMTKASDEMEDIUM"][default_locale])??>
212 <#assign data = data + { "media": json["contentmediumDMTKASDEMEDIUM"][default_locale] } >
213 </#if>
214
215 <#-- Programm Download -->
216 <#if hasContent('documentDMTBASICDOCUMENT', locale, json)>
217 <#assign
218 documentDMTBASICDOCUMENTString = getValueForLanguage('documentDMTBASICDOCUMENT', locale, json, "first")
219 documentDMTBASICDOCUMENT = FrontendService.json.parseAsJson(documentDMTBASICDOCUMENTString)
220 dmtJson_doc = FrontendService.media.getDMTJsonObject( documentDMTBASICDOCUMENT.groupId?number, documentDMTBASICDOCUMENT.uuid, locale )!""
221 />
222
223 <#if dmtJson_doc?has_content>
224 <#assign url = FrontendService.media.getLinkToDMT(dmtJson_doc)/>
225 <#if url?has_content>
226 <#assign
227 data = data + {
228 "documentDMTBASICDOCUMENT": {
229 "title": documentDMTBASICDOCUMENT.title,
230 "url": url
231 }
232 }
233 />
234 </#if>
235 </#if>
236 </#if>
237
238 <#-- Biogramm Special Data lebenslauf, veroeffentlichungen, literatur -->
239 <#if hasContent('lebenslauf', locale, json)>
240 <#assign data = data + { "lebenslauf" : getValueForLanguage('lebenslauf', locale, json, "first") }>
241 </#if>
242
243 <#if hasContent('veroeffentlichungen', locale, json)>
244 <#assign data = data + { "veroeffentlichungen" : getValueForLanguage('veroeffentlichungen', locale, json, "first") }>
245 </#if>
246
247 <#if hasContent('literatur', locale, json)>
248 <#assign data = data + { "literatur" : getValueForLanguage('literatur', locale, json, "first") }>
249 </#if>
250
251 <#if data?has_content>
252 <#assign content = content + [data]>
253 </#if>
254
255 </#if>
256
257<#else>
258 <#list entries as entry>
259 <#assign
260 primaryKey = entry.classPK?number
261 jsonString = FrontendService.article.getWebcontent(primaryKey)
262 json = FrontendService.json.parseAsJson(jsonString)
263 />
264 <@debugJsonString jsonString "ADT_KASDE_CONTENT" />
265
266 <#assign data = {} >
267
268 <#if (json["contenttext"][locale])?? >
269 <#assign data = data + { "text": json["contenttext"][locale] } >
270 <#elseif (json["contenttext"][default_locale])??>
271 <#assign data = data + { "text": json["contenttext"][default_locale] } >
272 </#if>
273
274 <#-- Bilderstrecke -->
275 <#assign series = getContentBilderstrecke(json) >
276 <#if series?has_content>
277 <#assign data = data + { "series" : series } />
278 </#if>
279
280 <#-- Media -->
281 <#if (json["contentmediumDMTKASDEMEDIUM"][locale])?? >
282 <#assign data = data + { "media": json["contentmediumDMTKASDEMEDIUM"][locale] } >
283 <#elseif (json["contentmediumDMTKASDEMEDIUM"][default_locale])??>
284 <#assign data = data + { "media": json["contentmediumDMTKASDEMEDIUM"][default_locale] } >
285 </#if>
286
287 <#if (json["contentbildunterschrift"][locale])?? >
288 <#assign data = data + { "caption": json["contentbildunterschrift"][locale] } >
289 <#elseif (json["contentbildunterschrift"][default_locale])??>
290 <#assign data = data + { "caption": json["contentbildunterschrift"][default_locale] } >
291 </#if>
292
293 <#if data?has_content>
294 <#assign content = content + [data]>
295 </#if>
296
297 </#list>
298
299</#if>
300
301<#if content?has_content >
302 <#if !layouttpl?contains("LAYOUT_KASDE_PERSONEN_DETAIL")>
303 <@PMPageContent portletId content classModifier />
304 <@PMShare registerLink />
305 </#if>
306<#elseif (editmode?? && editmode)>
307 <@errorMessage languageUtil.get(locale, "keine.inhalte.vorhanden") "ADT_KASDE_CONTENT" layouttpl currentUrl />
308</#if>